ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
As i saw in a site, which compares different programming languages i'm in the middle of a so called "programming language crisis".
I know (not perfect) Java, C++, Python, csh scripting and very little about C, but i don't know with which one i'like to move on. Many sites compare and rate each language, but that's probably not enough; to get to know a language, you should probably do more than that, maybe work with it a little bit.
I personally search for a general purpose language, which maybe pleases you to use, has a good graphical environment and can be used for network applications. I'd also like it to be compatible with other languages.
What do you think? Do i ask too much?
Ada is also great in it's "Write once, run somewhere" ability even in quite complex programs
instead of normal "Write, debug, write more, debug more, rewrite, run, debug again" structure (unfortunately it takes more time to write ada, because you have to write more).
It's quite a lot of what you are doing (I wouldn't write a dynamic web-page in ada, or a physics simulation in perl)
Distribution: Debian ("jessie", "squeeze"), Linux Mint (Serena), XUbuntu
Posts: 221
Rep:
PYTHON!! Absolutely Python.
I know Fortran, Pascal, APL, C (you can tell I'm older!) and Python is a language finally written for the programmer and not the machine.
It is REALLY, REALLY cross platform. My very first substantial program ran on Linux and Windows
w/o modification. W/ no hassle AT ALL!
Python is part of most Linux Distro's (of course, so is C). Using the TK toolkit you can easily attach
a GUI to Python and it is ALSO portable. Network support is intrinsic. Python does not have to run particularly slow (definitely it is faster than Java). Using the
gnumeric extensions, you can do scientific programming with C speeds. The development environment which allows running scripts w/o compiling is wonderful. The object oriented features are very good (as good as Java) and easier to understand than C++. All the stuff that's annoying about other languages (particularly when it comes to counting arguments, manipulating and parsing strings, allocating arrays and memory is trivial in python)
If you want to suffer and feel manly, C is still good. If you ever want to hack the Linux kernel, or develop for embedded devices, you absolutely need C. C is still the "lingua franca" of coding.
But if you want to get your own stuff done quick ... PYTHON!
i agree, python is diffidently good at doing most tasks very well (i say most as i prefer to use c for actual programs, and python for stuff like config programs, and small tasks, even tho it can do a lot more)
I just cant get into Python, im not too sure why. Theres something about the structure of it i dont like =/
I did a lot of Java for quite a long time, but i got really cheesed off with GUI programming in it. I dont like Swing/AWT whatsoever, and the differences in speed were definitely noticeable to me.
Id personally continue with C/C++, and spend some time focusing in either networking / low level system programming / QT? or whatever your interested in
I just have tons of books laying around about everything (Linux/Perl/Python/C/C++/Java/Security etc etc) and i just pick up and read whatever im in the mood for; seems to work for me
1. Java is probably the best for "learning good habits"
(Ada is far superior, but I doubt you'll get to use it very often on Real World projects)
2. C is the "Swiss Army Knife" you'll use everywhere, and the one thing (besides
assembler) you can always fall back on when all else fails.
3. I'd definitely urge you to be conversant with one or more scripting languages, including:
- Bourne shell
- Perl
- Visual Basic/VBScript
4. And don't forget our friends over in M$-land - you really need to be conversant with their stuff, too:
- Visual Basic
- .NET {any/all of C#, VB.Net, ASP.Net and ADO.Net }
5. And finally, you need to be familiar with some basic web technology:
- HTML/CSS/CGI
- Server scripting: {Perl/CGI or JSP or PHP or ASP.Net}
- Client scripting: JavaScript
I previously wrote: Regarding C or C++, I haven't got time for the pain...
Actually, that was a bit unfair of me. C++ has a lot going for it. You wrote:
I personally search for a general purpose language, which maybe pleases you to use, has a good graphical environment and can be used for network applications. I'd also like it to be compatible with other languages.
What do you think?
Well, C++ is general purpose, it *can* be pleasant to use if you're very familiar with it and don't get mired in trying to use all its features at once. You can use many different GUI toolkits with it (TOAD, gtkmm, Qt, etc.) and it's compatible with the *many* C and C++ libraries out there.
paulsm4, you didn't mention C++. Not your style?
Tesl wrote: I did a lot of Java for quite a long time, but i got really cheesed off with GUI programming in it. I dont like Swing/AWT whatsoever, and the differences in speed were definitely noticeable to me.
I know what you mean. I've been trying to use jEdit as my main editor, but it's just such a *hog*. I'm certainly not blaming the generous programmers who created it and give it away -- it's just that it takes *so* long to load and seems to take a very large amount of memory (especially noticeable when switching between it and other large apps). I just wish NEdit had a tabbed main window.
At the time being i think i'd better continue with C/C++, csh and python.
After also a search a did by myself and some other discussions i think Java is not my type (if there is need i could continue with it later, as i will also be familiar with C++).
Thanks to everybody. Your experience was really helpful.
Programming style is as important as the language choice.
I have a fair level of skill in Cobol, Fortran, ASM, PL/1, C & C++, Rexx, Perl. I would love to learn more, and I assume I will when the need arises. However, with each new programming task - I first look through my library of stuff in hopes that I CAN REUSE SOMETHING. I have found that if the original was written consistently and with some rigor; like - no Globals, initialized locals, sensible name for variable, and some decent notes embedded in comments.
Reuse and thus time to End Of Job can be greatly increased. For me the language is not the most important factor. Its what am I comfortable with and really know well, and what do I have in my collection that can be used. Also, this open source thing is another productivity gold mine, with our ability to see and use code from other people libraries openly. Libraries that are based on every language and style known to man.
Note: There are very very few new ideals or problems; just new languages. How many times are you going to code the same solution?
i think java is a good option. Switching from .Net to java or vice versa is easy and java is "cross platform". The speed can be decent want you don't program with a quick and dirty attitude. There are many librairies you can use too from network programming to gui, to a web application. Sometimes i miss the maximum pain of advanced C++ programming or that dirty but easy visual basic/asp/asp.net.
What i would suggest is to focus on java but know how to use .net(C# or vb.net almost the same), be able to understand php/perl/c++ and another language.
i don't mention html because it is just basic with all related technologies(css,javascript,...).
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.