Are programming careers all they're cracked up to be?
Please register to participate in our discussions with 2 million other members - it's free and quick! Some forums can only be seen by registered members. After you create your account, you'll be able to customize options and access all our 15,000 new posts/day with fewer ads.
I personally don't see why java is so popular. Having worked with both java and c, I would pick c any day.
There are a couple of reasons to use Java. One, from many things it is the only supported language. You're not going to find many app servers and web tool kits that interface with C. Two, it has a huge built in class library. Far larger than even STL in C++. Three, it is portable. Calling C/C++ portable is a joke. Yes, if you do something very simple that does no sort of machine specific activities(ex. IPC or Graphics), then yes, C is portable. But for any large scale application it can be a nightmare to port. From multi-threaded/multi-teired server applications to full blown UIs, you can move them from Windows to Linux to z/OS with little effort. Java is by no means perfect, but it orders of magnitude better than it was 10 years ago.
Low-level programming can be eye-opening for those who have never done it. If they notice it, program size differences can floor them.
These days, even embedded programming can use high-level languages. I'm pulled both ways when I think about it - CPU speed and memory costs are SO low that maybe "it's okay" to be ridiculously inefficient relative to what COULD be done with lower-level languages.
But sometimes I really wonder just how FAST certain types of programs would be if they didn't have the fluff of higher-level implementation.
[I just started up a process explorer and looked at some running programs - Firefox is currently about 380 MEGABYTES in size. Now, I'm sure an awful lot of that is data rather than program but it never ceases to set me back on my heels to see things like that. I "grew up" on PDP11s that had, like, 128KBytes TOTAL for the (early UNIX) OS and programs and data. We crammed our programs into that space and achieved amazing results (image processing lab). Crazy.]
Unfortunately some stuff needs to be done in assembler still to this day. Embedded is often due to memory constraints, but a low level OS interactions still requires it on some operating system. All of IBMs OS calls on VM and z/OS are still assembler based. If writing high volume code for CICS or TPF you still want to be a tiny as possible. You can still produce CICS transaction modules that are less than 4k. I don't MS Visual Studio will even generate a simple "Hello World" program that small.
You can still produce CICS transaction modules that are less than 4k. I don't MS Visual Studio will even generate a simple "Hello World" program that small.
Yesterday I tried out a very simple C "Hello World" program on a Raspberry Pi - it ended up being about 50Kbytes which, frankly, I thought was outstandingly small.
[I am very "old school" - some would say literally...have written compilers and print spoolers and even device drivers with lots of exposure to assembler as well as being an early PCer where "being a PCer" meant building and programming the PC. As such, being satisfied at a dinky C program compiling/linking to 50Kbytes is no small statment...]
]
Yesterday I tried out a very simple C "Hello World" program on a Raspberry Pi - it ended up being about 50Kbytes which, frankly, I thought was outstandingly small.
[I am very "old school" - some would say literally...have written compilers and print spoolers and even device drivers with lots of exposure to assembler as well as being an early PCer where "being a PCer" meant building and programming the PC. As such, being satisfied at a dinky C program compiling/linking to 50Kbytes is no small statment...]
]
I applaud your minimalist (w.r.t. program size) approach to programming. After taking a course in assembler, I can certainly appreciate the small footprint of code written in assembler. Plus I think it is really neat to understand how HLL constructs such as if, then, switch, and loops translate to operations at the memory and register level.
Please register to post and access all features of our very popular forum. It is free and quick. Over $68,000 in prizes has already been given out to active posters on our forum. Additional giveaways are planned.
Detailed information about all U.S. cities, counties, and zip codes on our site: City-data.com.