[sf-lug] [new-sfwow] (jobs) This is interesting....

Adrien Lamothe alamozzz at yahoo.com
Wed Apr 12 12:43:40 PDT 2006


Hi Thomas,

I understand where you're coming from. However, taking that approach is very inefficient from a time allocation standpoint. The other problem with both MFC and Java is they are not recognized standards, so the companies that offer them can change them whenever they want, so you are essentially being held hostage. Both C++ and Unix are international standards, so even though C++ takes more work you are able to leverage their standardization when it comes to porting, deciding which Unix to run and acquiring your compilers and other development tools.

I've noticed that when I go to websites using Java, they are very slow, so I'm guessing that Java may be slow on the server side also.

I prefer to do my object-oriented programming in Python or Ruby. Ruby now has a byte code compiler, and Python is getting one soon.

Have you ever programmed in SmallTalk? What do you think of SmallTalk?

If you are interested in multi-platform software development, you should look into the QT development kit, from a company called Trolltech (http://www.trolltech.com). QT is excellent, and a version called QTopia works well on devices such as cell phones. QT works with C++, Perl, Python and Ruby. The great thing about QT is that it is open-source, using the GPL license. You pay a licensing fee to use it in commercial systems, but you have the source code. Ask Sun or Microsoft to give you the source code for their products. I think they will give you some of it, but not all of it.

Cheers,

Adrien


Thomas DiZoglio <thomas.dizoglio at eride.com> wrote:        
> A typical job listing these days wants someone who is an expert
> systems programmer in Windows, Linux, Java, C++ along with other
> stuff. They don't understand that no self-respecting Java developer
> would be caught dead coding in C++ (and vice-versa). Ditto for Windows
> and Linux. If you are porting an app from Windows to Linux, it is 
> way better to just write it from scratch.

Today you need to know C++ and Java as a Software Engineer. Both have strengths in various parts of software development. For example, coding a server-side application that needs to handle a lot of user requests or integrated into a application server is best done in Java. This is because of all the great classes it provides for memory management, threading, ability to run on multiple platforms and network protocol handling (UDP/TCP up to HTTP). It takes very little Java code to write a robust server-side application where as for C++ the same would take 4 times as much code and a lot more knowledge of low level network protocols (assuming not using Microsoft system DLL's). Now C++ has Java beat for writing client side GUI Windows or Linux applications. Using Java and SWING for a client application on either platform will build a application that is 4 times the size of a C++ executable, runs a lot slower and you can't take advantage of the host OS's full GUI and system routin
e capabilities. Also, if you code on Windows using C++ and Microsoft's libraries (MFC, ATL, STL, etc.) it is pretty close to Java's runtime classes in capabilites. So knowing Java can be helpful and decrease you coding time writing a Windows C++ application. For example, you understand Serializing an object to write to file or send over the network. This was first done in Java and the feature is very useful so was added to MFC. So knowing both languages can make you a better object oriented programmer and write better code. This is why from a Software Engineering job perspective it is very important to know about both languages and being able to know when to use the correct one for the problem you are trying to solve.

As for Windows/Linux coding, knowing both is important, but not as much as knowing Java/C++. For example if I wanted to run a server for email, website hosting, etc. I would use Linux. If I wanted to code a 3D multi-player game I would code on Windows using DirectX or OpenGL (for portablity). Knowing both these systems as a Software Engineer is good and will give you a much broader appeal for companies to hire you. I find this more true at the embedded level of programming where Windows (CE, XP) and Linux compete more because at this level both provide the same abilities and tools. So if you provide embedded hardware to OEM's it usually needs to run both systems. When coding GUI executables the systems are different enough, but you should still share most code (> 80%) if you are writing a cross-platform application and coding in C++ using true object oriented design(Java should require no code changes using SWING or AWT). If you need to write code from scratch when portin
g an application then the application was initially designed wrong (original coder told not to design for multiple platforms to save $$ on coding bill) or the Software Engineer doesn't know how to code or do his job properly. This is also why know multiple systems (Windows/Linux/Solaris/MacOS) helps you out as a Software Engineer because when designing an object oriented application you will create your class hierarchy properly to separate core code from platform specific code. this is always important because porting an application can happen even on Windows. Going from Windows XP to Vista will be a port.

This is just my 2 cents from a Senior Software Engineer's perspective.
------------------------
t0md


 
 
 vincent polite wrote: I thought this was an interesting little article from monster.com. What do you guys think?
 http://technology.monster.com/articles/opensource/?WT.mc_n=MNL000118   

---------------------------------
 _______________________________________________ sf-lug mailing list sf-lug at linuxmafia.com http://linuxmafia.com/mailman/listinfo/sf-lug   __________ NOD32 1.1485 (20060412) Information __________  This message was checked by NOD32 antivirus system. http://www.eset.com    
  
 
-- 
CONFIDENTIALITY NOTICE: Proprietary/Confidential Information belonging to eRide, Inc. may be contained in this message. If you are not a recipient indicated or intended in this message (or responsible for delivery of this message to such person), or you think for any reason that this message may have been addressed to you in error, you may not use or copy or deliver this message (and all attachments) to anyone else. In such case, you should destroy this message (and all attached documents) and are asked to notify the sender by reply email.
 _______________________________________________
sf-lug mailing list
sf-lug at linuxmafia.com
http://linuxmafia.com/mailman/listinfo/sf-lug


		
---------------------------------
Talk is cheap. Use Yahoo! Messenger to make PC-to-Phone calls.  Great rates starting at 1¢/min.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://linuxmafia.com/pipermail/sf-lug/attachments/20060412/7183db0d/attachment.html>


More information about the sf-lug mailing list