PDA

View Full Version : What language is used in the professional world



theDentist
May 14th, 2007, 06:36 PM
I am only an amateur programmer using mostly C/C++ language. When I program Ubuntu I use wxWidgets, GTK and Gnome. In Windows I use MFC and a bit of C++ .NET. All these are C/C++. Can all you programmers in the profession tell me what language is favoured in the real world out there where you all earn a living by it ( you have my sympathies and admiration!). This question has probably been asked before so my apologies if I'm boring you all.

pmasiar
May 14th, 2007, 06:47 PM
Can all you programmers in the profession tell me what language is favoured in the real world out there where you all earn a living by it .

First, define "real world". :-)

eentonig
May 14th, 2007, 06:50 PM
For me, the 'real world' is still outside the pc world. So I would define my 'real language' as being Dutch. But professionally, it's 'English'.

Concerning programming, I think it depends a lot in what kind of environment you end up.

guernicaaa
May 14th, 2007, 06:53 PM
I've noticed the huge rise in Java. I think that it will be really big in the next few years

skeeterbug
May 14th, 2007, 07:04 PM
C#/.NET are putting food on my table and a roof over my head. I convinced my boss to do our main website in ruby on rails, so every once in a while I get to dabble with that! Our core products are all C#/.NET based though.

justin whitaker
May 14th, 2007, 07:09 PM
Technically, we speak "Finance" where I work. :)

In terms of computer languages, we use just about everything: C/C++, Java, Perl, PHP...it really depends on what we need, and who is doing the work.

Mathiasdm
May 14th, 2007, 07:17 PM
I've noticed the huge rise in Java. I think that it will be really big in the next few years

It's been 'big' for quite a while already ;)

user1397
May 14th, 2007, 07:20 PM
Nobody likes python...:(

pmasiar
May 14th, 2007, 07:52 PM
Nobody likes python...:(

PHB (http://en.wikipedia.org/wiki/Pointy_Haired_Boss) did not discovered Python yet - only smart people use smart languages like Python and Ruby, rest is suffering with Java/C/C#/C++. Any of them is preferred by PHB, because they have this special ability: enterprisiness. They are enterprisey!

Don't confuse Enterprisey with Enterprise, they are completely different concepts:

Enterprisey system looks like this: http://blueballfixed.ytmnd.com/ :-)
Meme was started here: http://lesscode.org/2006/03/26/its-enterprisey/ as response to WFT article (http://worsethanfailure.com/Articles/To_the_Hexth_Degree.aspx)

elst
May 14th, 2007, 08:34 PM
TIOBE is kind of the Netcraft of programming languages (simplistic, but interesting):

http://www.tiobe.com/tpci.htm

Java has been no. 1 according to their stats for a long time, but most of the top languages on their scoreboards are things that aren't actually considered particularly cool or fun to work with.

If you are programming as a hobby then you might as well as go with what seems the most interesting for you. If you are thinking of starting a career then either PHP or ASP.NET with VB probably offer the best combinations of employment prospects and ease of use, but again, they aren't the best languages in themselves.

theDentist
May 14th, 2007, 08:35 PM
Thanks all, what I meant by the "real world" I suppose those who earn a living by it, they can't afford to make the wrong choice as it would be a bad career move. I just wondered which language (programming!!) would be the best to concentrate my limited abilities and time on.

tc101
May 15th, 2007, 12:22 AM
I retired 3 years ago, but at the time I was in the Microsoft world of programming, using Visual Basic and ASP.Net.

Here is a page that tells you the most popular programming languages.

http://www.tiobe.com/tpci.htm

Keep in mind that they say "Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written."

pmasiar
May 15th, 2007, 03:23 AM
Thanks all, what I meant by the "real world" I suppose those who earn a living by it, they can't afford to make the wrong choice as it would be a bad career move. I just wondered which language (programming!!) would be the best to concentrate my limited abilities and time on.

If you want to specialize, take into account also industry, and target company preferences.

Small companies/startups tend to use RAD languages (Rapid Application Development) like Python and Ruby (especially if they want to be successful or bought by Google), big Fortune 500 enterprises tend to use more "enterprisey" :-) languages like C# and Java. Web 2.0 is done with JavaScript - AJAX.

Hordes of Java web app enthusiasts are moving to Ruby on Rails. Smart companies, like Google (and our own Canonical), hire a lot of Python programmers.


There is no "silver bullet" language. Be prepared to learn multiple languages.

JT673
May 15th, 2007, 03:48 AM
Great lesson in this thread. It's not the language you learn, it's how many languages you learn. Don't expect one language to continue to be on top, because it will get knocked over, along with those who aren't prepared for the new king.

samjh
May 15th, 2007, 07:51 AM
If you want just raw figures, go to a large job seeking website and do some searches for various programming languages.

In Australia, the most popular (ie. people wanted) single programming language in the professional world is Java (1878 jobs), followed by C# (1192 jobs). The most popular platform is .NET (1642 jobs) followed by Java EE (1286 jobs). C++ comes in (576 jobs) a long distance behind Java and C#, followed closely by VB.NET (542 jobs) and then pure C (137 jobs).

Python is still very small (66 jobs), but still more popular than Ruby (53 jobs).

Akibania
May 15th, 2007, 11:07 AM
As already mentioned:
Java
C++ (.NET)

SQL

I guess these as well:
Ruby on Rails
Python
Ajax

The market is changing, so you might want to know where the demand is growing and where it is declining.
Java has already become very big. C++ is not so well depending on the industry involved.

Ror, Python and Ajax are still in their early days market-wise.

Incάnus
May 15th, 2007, 03:13 PM
There is no such thing as "one language to rule them all" - just like there's no such thing as "one technology to rule them all". Don't let the Non Technical Management shape that thinking.

If you want a language to get under your belt that's going to be "big" soon, I'd say Java. Very recently there's massive appreciation of Java among programmers, and it's now been open sourced, and Sun are taking "IDEs for all" seriously AT LAST.

It's as massive in server space as it ever was (moreso) - but for desktop/web cli it seems to be getting lots more attention that isn't from comp sci undergrads.


Nobody likes python...:(

VHLL or not, it's the most beautiful and intuitive programming language I know of.

You can think in it, you can realise ideas immediately in it (that run perfectly first time!) and you can do strange OOP tricks straight away that could take an hour of thinking through first.

The language is that wonder of usability - it doesn't get in the way of what you're doing or what you're thinking.

the.dark.lord
May 15th, 2007, 03:16 PM
Nobody likes python...:(

i do i do i do i do :guitar:

jespdj
May 15th, 2007, 06:44 PM
I'm a professional software developer.

Ofcourse a lot of programming languages are used in the "professional world": C, C++, Java, C#, Visual Basic, Python, Perl, Ruby, PHP, ... Which language you choose depends on what you are going to program. I have been programming mainly in Java the past 7 or 8 years, mostly building enterprise software and web applications for different companies.

There is not one language which is clearly "the best" or favoured above all others.


As already mentioned:
...
Ajax

Ror, Python and Ajax are still in their early days market-wise.

Note, Ruby on Rails and Ajax are not programming languages. Ruby on Rails is a framework for use with the Ruby programming language which makes creating a web application with Ruby a matter of minutes. Ajax stands for Asynchronous Javascript And XML and is a programming technique for creating web applications.

theDentist
May 15th, 2007, 10:00 PM
It seems Java is a big one, why do you all think this is, It is obviously more than it's portablility. What are the features that set it up at the top?

black_ice
May 15th, 2007, 11:28 PM
there is no doubt that the java is the best in every thing :) and all of us know that


for me i started with little poralnd C in my faculty and then i transfer to java i find it difficult and i went in administration field and i let the programming :( the java makes me hate the programming stuff at all cuz i didnot start the right start in it but by the way java rux

iam now a perl and bash programmer helps me in my admin. stuff makes job easier :)

nix4me
May 16th, 2007, 12:44 AM
At my company, most code is written in C and C++. However I do know 2 ADA programmers who work on some old government code! Im starting to see more and more C# and Python projects too.

nix4me

helmet
May 16th, 2007, 12:49 AM
I'm a software engineering student on an 8-month work term right now, currently working at Matrikon (http://www.matrikon.com)

We use C++ (Borland and VC++), HTML, Javascript, Java, ASP.NET and C#. Trying to move away from the Borland code, because Borland is gross. Our newest product is ASP.NET/C#.

Other languages/frameworks we use to get our job done, is Windows Batch file scripting, C#, C++, SharePoint, and VBS

nfm
May 16th, 2007, 01:31 AM
C defines professionalism quite nicely.

kknd
May 16th, 2007, 02:00 AM
In my country (Brasil) the most popular programming languages are:

For Desktop: Java, Delphi, C#.

For Web: Java, PHP, ASP.NET

pmasiar
May 16th, 2007, 03:14 AM
It seems Java is a big one, why do you all think this is, It is obviously more than it's portablility. What are the features that set it up at the top?

Pointy-haired boss likes Java. It is a safe bet.

Paul Graham is smart hacker and dot-com millionaire, read his essays:
Java's cover (http://www.paulgraham.com/javacover.html) - hype about Java without diving in
beating the averages (http://www.paulgraham.com/avg.html) and Revenge of the Nerds (http://www.paulgraham.com/icad.html) - why average language is not good enough
The hundred year language (http://www.paulgraham.com/hundred.html) - 100 years of evolution of languages
About language design (http://www.paulgraham.com/langdes.html) - how to guess if language will become popular later

user1397
May 16th, 2007, 03:43 AM
ah, just found this: http://www.python.org/community/jobs/

not that hard to find though, cause its on the main menu at the left of the main python site (http://python.org)

samjh
May 16th, 2007, 12:52 PM
It seems Java is a big one, why do you all think this is, It is obviously more than it's portablility. What are the features that set it up at the top?

Portability is a massive strength. If your code is thread-safe and lightweight (ie. does not link to native executables or libraries) it will run on any of the three officially-support architectures with no code change or recompilation. 99% of the time. It will also run on third-party JVMs with little or no modification.

Java is also very maintainable. Code documentation is a built-in feature of the Java platform, and the file structure - one class per file (basically speaking, it is a little more complex than that) - encourages logical separation of code.

Java comes built in with a massive API, which covers 95% of programming situations. The only things not covered are low-level controls that need native code. The API are also quite easy to access to use. Some people disagree, but I've seen more agreement than disagreement in this, especially among those who come from low-level programming backgrounds (which is where I come from).

Java has strong typing, code safety, and exception handling. These can be cumbersome to handle for some programmers. But if you value code security and reliability, they are good features. Java is often used in mission-critical applications like telecommunications, scientific, and heavy engineering industries, because it forces safe and secure object-oriented design, among other features. NASA uses Java for control systems and data analysis for space missions, as well as for more traditional data handling and storage. Telecommunications companies are strong users of Java, as are financial institutions. All those industries focus on security, safety, and interoperability; which are some of the main strengths of Java.

Java has good balance between performance and architecture independence. Where there is a JVM, Java will run, and with speeds much faster than Python or Ruby, and only a little slower than C/C++. In addition to the three official architectures (Windows, Linux, and Solaris), other vendors develop their own JVMs (eg. Macintosh, AIX, and many portable devices manufacturers).

Those are Java's main strengths.

Java became popular because of Java applets and the idea that interactive content could be delivered over the WWW in a secure manner. It was only partially successful in that area. It became more successful for applications which required interfacing between the WWW front-end and server back-end, and for cross-platform applications in the scientific R&D area. Banks were and still are massive Java fans, because of its compatibility between systems, web capability, and other features. When the scientific community got a hold of Java, it took off there too, and it filtered into engineering and industrial usage. But ultimately, Java became successful because it managed to bind all the features I listed above, into one cohesive language and platform that was both free and easy to use. There was a synergy in the Java platform that didn't really exist in a lot of other languages.

There are weaknesses of course, but they are limited to situations where you want very tight desktop integration, system-level programming, or very high-performance real-time applications. Java does require a lot of scaffolding, and this makes it unsuitable for writing small utilities or trivial applications, which can be developed faster with languages like Python or Ruby. Having said that, I have no doubt that languages like Python and Ruby will eventually supersede Java in time to come, but not for many years yet.

Don't think too much into comments about pointy haired bosses. There are some who fit that bill. But for the most part, Java is not a language for idiots or the lazy. Unfortunately, its popularity has attracted those types of programmers, but that is inevitable. Same will happen to any language that becomes as popular as Java.

(Before anyone makes smart-*** comments about my experience, I have a lot of experience in C, Java and Pascal - around 6, 7, and 2 years, respectively; and working knowledge of assembly, C++, Python, and Ruby. There are several other languages I am familiar enough to read and understand, but not to actively use.)

pmasiar
May 16th, 2007, 02:07 PM
Your POV is "java-as-a-platform" centered - then, obviously, Java is the solution. Try to think what is the problem first, and then evaluate if Java is the best solution for it.


Portability is a massive strength. If your code is thread-safe and lightweight (ie. does not link to native executables or libraries)

Java was solution to a problem which crucial in 1990-1995 but does not exist anymore: creating a platform which is independent of windows. Now we have this platform (GNU/Linux) and non-native java libraries are wasteful duplicity.


Java is also very maintainable. Code documentation is a built-in feature of the Java platform, and the file structure - one class per file (basically speaking, it is a little more complex than that) - encourages logical separation of code.

Java comes built in with a massive API, which covers 95% of programming situations. The only things not covered are low-level controls that need native code. The API are also quite easy to access to use.

Java's approach is: lets make both hard and simple things possible.
Python approach: make simple things easy, and hard things possible.

Java scales well to huge problems, but does not scale well to simple problems. Ie parsing text files, flexible list processing in Java is substantially more cumbersome then in Python.


Java has strong typing, code safety, and exception handling. These can be cumbersome to handle for some programmers. But if you value code security and reliability, they are good features. Java is often used in mission-critical applications like telecommunications, scientific, and heavy engineering industries, because it forces safe and secure object-oriented design, among other features. NASA uses Java for control systems and data analysis for space missions, as well as for more traditional data handling and storage. Telecommunications companies are strong users of Java, as are financial institutions. All those industries focus on security, safety, and interoperability; which are some of the main strengths of Java.

Static exception handling is rather painful. Static typing makes you to cast objects all the time when removed from collection - not sure how this adds to safety. API and object structure is byzantian and unintuitive, it takes years to learn it so you can use it without reference. Python Pocket Reference has 130 small pages.

Java is used in industries more concerned about code stability than individual developer performance, in managing huge groups of replaceable programmers, where you can add and remove average coders at will.

Static type checking does not cover all possible errors, and you need to write unit tests anyway. In language with dynamic typing, you just start with testing for types, which is trivial. And dynamic exception handling allows you to handle errors where it makes sense, not where they are created (or ignore some of them for pilot project).


Java has good balance between performance and architecture independence. Where there is a JVM, Java will run, and with speeds much faster than Python or Ruby, and only a little slower than C/C++.

Coding in Java assumes are code is equally time-critical. When using "Python with custom C libraries" approach, you implement whole app in Python, profile bottlenecks ("don't guess: measure") are reimplement that 5% of code in C. As result, you have application which runs almost at speed of C, written almost at speed of Python. Java app in general will take longer to write and will run slower.


Java became popular because of Java applets and the idea that interactive content could be delivered over the WWW in a secure manner. It was only partially successful in that area.

It was complete failure: javascript (no reletion to java at all - name is just marketing gimmick) and Flash are replacing it.


It became more successful for applications which required interfacing between the WWW front-end and server back-end

Funny that text processing is so cumbersome in presumed www language?


for cross-platform applications in the scientific R&D area. ... When the scientific community got a hold of Java, it took off there too, and it filtered into engineering and industrial usage. .

Many R&D scientists prefer Python, because is simpler to write (no static type nazis), simpler to read (and share code), simpler to experiment with, and has links to all C libraries. You do not have to be dedicated CompSci to write quick Python code once in a while (and let it grow as needed).



Java does require a lot of scaffolding, and this makes it unsuitable for writing small utilities or trivial applications, which can be developed faster with languages like Python or Ruby. Having said that, I have no doubt that languages like Python and Ruby will eventually supersede Java in time to come, but not for many years yet.

I agree. There is huge amount of inertia using Java, and for many projects which started in Java in '90 it does not make sense to switch. And for app like controlling nuclear plant, rocket launch etc, safety comes before programmer productivity. But for most of applications used now, Java is overkill.

I am not saying that Java is not used al over the place: it is! :-)

What I am saying is: Java is used more than Python in big companies. Python is used more than java in smart companies (ie Google) with bigger growth potential where you want to work, or even in these same big companies for non-enterprise critical work.

Programming in Java is not rocket science. You read tutorials, get your reference book and you struggle around. What is hard for me, is to write code in java in work, knowing how much faster and simpler I could write the same code in Python - and not being allowed to do that. :-(

If you want to get 9-5 job in big company, learn Java (or C# - it is just Microsoft own java). If you want to have fun and feel free and productive, and possibly score a job in a startup, try Python.

theDentist
May 16th, 2007, 06:49 PM
That's one of the best discussions on Java I have read, thanks for the input, very helpful :)

ljs_1969
May 16th, 2007, 07:17 PM
C/C++,Java,C#...

keekaboo
May 24th, 2007, 05:39 PM
Java is, and probably will be for a while, your best opportunity for employment.

Switching between languages within the same group isn't too difficult, as you'd be surprised at the commonality. With that in mind, I'd recommend you become familiar with a standard scripting language, such as Perl. Combined with your C/C++ skills, this will give you a good grounding for branching out.

Best of luck if you choose to do so.

achron
May 24th, 2007, 06:12 PM
Hmm... Java definitely has alot of marketshare. Anything feeding DotNet is valid for a Microsoft shop.

What you'll probably find is that your "current" languages will migrate over time...

Used to do a lot of SAS, FORTRAN, Natural on the big iron.
next C, Clipper
next Visual Basic, Visual C++, SQL (MSSQL, Oracle)
next Python, Java, XSLT stylesheets
next C#, and PHP, MySQL
mix in developing with Siebel systems environment
now a different homegrown language that gets generated into multiple target environments/languages

Whatever you choose... expect it to change.

theDentist
May 24th, 2007, 11:15 PM
As you all probably have realised I'm a dentist in my day job, I've written my own practice software, but my reason for this thread is I want to get more involved with dental software companies. I could combine my dental knowledge with programming. I'm near retirement and would love to go a different direction in my twilight working years. Anybody out there been involved in writing software for the big dental companies and any specific advice on this very specialised area

Ram Crammer
May 25th, 2007, 04:57 AM
Enterprisey system looks like this: http://blueballfixed.ytmnd.com/ :-)


The blueball machine is WAYYYCOOOLLL!!!!!!! People, check out the URL!!