Interpretive execution is good for tools, personal use, and prototyping, but not for business use. It may not seem like there is all that much overhead, but over the course of a day, a compiled program that executes, say 33.5 million times, will be more efficient than an interpretive one. Compilation can mean millions saved in avoiding processor upgrades.
For our little PCs here it is of course mostly academic.
-
AKAJohnDoe Mime with Tourette's
-
Ya, but if you do need the speed, you can compile it using py2exe(Windows) or freeze(linux).
-
FusiveResonance Notebook Evangelist
I'd suggest C/C++ only if you plan on "in the future" working with hardware. If you were in engineering as compared to comp sci, this would be my suggestion.
Because you're in comp-sci, java gets my vote.
Eitherways you'd be learning a language, which will teach you programming concepts/logic. This will help you in later years when you will learnl additional languages. But you might as well start with java, as this is what you'll be using the most. -
C? Why C? C++ for sure.
But I say Python for starters. -
I'd say he can't go wrong with C, C++, Java, Python, or VB.NET. Especially if he's already using Windows, VB.NET can be really fun. Instant GUI programs in like 5 minutes. Same case for Java, but not C++ or C or Python.
It will keep things fun, in case he's not as motivated. As I was when I was getting my Comp. Sc. degree. -
I personally think everyone should learn an assembly language (there's more than one). It will help with understanding a lot more about how everything works.
Other than assembly, some higher languages to learn would be Java and C/C++. If you want to go into web development (probably a good idea to head in this direction now), PHP, javascript, html/xhtml, and flash would be extremely beneficial.
Once you learn JAVA or C++ the other will be much easier to learn. Likewise with web development langauges. They all tend to somewhat overlap, but have certain differences you have to remember when programming in that particular language. If you learn one, you're preparing yourself to learn the next much easier.
Good luck. -
I really can't justify learning Assembly, its just way to much work.
-
join the dark side
delphi FTW
or ASM -
FusiveResonance Notebook Evangelist
I agree with all the assembly comments. Don't learn an assembly language first, it's not necessarily going to make learning a high level language easier.
-
ScuderiaConchiglia NBR Vaio Team Curmudgeon
I too agree with swarmer. Just look at the .Net languages. These all blur the lines between complied and interpreted. They are complied into what used to be called "P-Code" and and at run time this P-code is interpreted by the runtime environment.
Gary -
Indeed. I certainly wouldn't suggest it to someone who's still learning basic programming concepts, but eventually taking on ASM will give you a solid understanding of memory management and what's happening exactly in that lower level that we can't interact with through Java or C#.
If you need a job though, knowing assembly pretty well with C and/or C++ alongside it will give you access to very specific job positions since .NET is sort of spreading everywhere now. -
Definitely; once you've got a conceptual framework for "programming," learning assembly will take you to the next level - even if you don't use it regularly in your work-a-day programming - because it will help you to fill in the blank spots that get taken care of for you by the compiler/interpreter for a higher-level language, and you will almost certainly gain a very direct appreciation of things like the memory management techniques that, when first taught in a higher-level language, might seem like pointless frivolity or academic niceties.
It will also give you the ability to fine-tune your high-level language programming by allowing you to interstitially insert assembly code (e.g., C/C++ allow for the use of some inline assembly code), or to even rework the executable produced by the compiler (via a good disassembler/assembler such as IDA Pro), in order to either remove some of the additional baggage the compiler adds in, or to do certain steps that the compiler cannot set up.
That ability will carry you far beyond just C/C++; for example, it would enable you to write and fine-tune custom assemblies for use in a .NET environment, which will certainly make you a more valuable .NET programmer than the guy/gal who just learned how to read the .NET documentation and manipulate the pre-existing .NET libraries and assemblies. -
.NET is a great platform to start with.
Which "computer language" should I learn?
Discussion in 'Windows OS and Software' started by Jaycee8980, Sep 23, 2008.