Zona Research Does Programming Language Poll 356
Anonymous Coward writes "Zona Research has polled a group of developers regarding their favorite development tools. Visual Basic is far more popular than I would have previously thought, given the amount of griping I hear about it. Not suprising that C is still quite popular. Java finishes third...due to its relative youth, or are developers simply not using it that much?" The story's from Yahoo.
Re:9 out of 10 dentists recommend it! (Score:1)
:)
What really matters (Score:1)
Data bound (Score:1)
Ah, I was not aware of that. It makes sense though. I have long said the same about good Delphi programmers.
Unfortunately, the majority of VB code will use databound controls. Last time I used VB, there wasn't much else you *could* do. I could also add an opinion that any good VB programmer doesn't use VB, but that would just be stirring up trouble.
One of the design goals of Delphi was to do everything that VB does, and a depressing number of Delphi programs don't even venture beyond "VB for dummies".
Re:Fortran still popular (Score:1)
Re:The real news. (Score:2)
The proverb is the legend of the creation of chess. The King in question was about to fight a war with his neighbor and asked his Wasir (counsellor) to come up with a means of avoiding an actual battle. The Wasir invented the game of chess and had the two kings play a game instead of fighting. The game was a draw which made the two kings realize it was a bad idea to fight each other for real as they were so evenly matched as tacticians and the war was thus averted.
In gratitude, the first king then asked the Wasir to choose a reward and he chose the grain reward described in the original post.
Re:Java's in third? (Score:2)
It's not only a vendor problem (unless you're using green threads).
On most systems the JVM uses native threads for performance and scalability reasons. Now let's take a look at the Java API. In java.lang.Thread there exists 10 levels of priorities for Java threads. Now let's see how this maps to a native thread system of say...oh so dear Windows NT.
On NT you don't have process priorities in the same sense that most Unixes have. Instead, what you have is thread groups (Low, Medium, High, Realtime) and each of these has 7 levels. So let's say our JVM runs on the High priority group. There's only 7 levels there, yet we have 10 in Java threads. There must be some overlapping going on here! So you cannot guarantee that your Java thread with priority of 7 is lower than your Java thread with priority of 8. Maybe they map to the same level 5 on the native threads!
Then take a look at the thread model Solaris uses... and Linux which clones light processes... it gets very messy real quick.
So its not just a vendor problems. Java leaves alot to desire when specifying threads, and mostly the reason is that abstracting all the thread models of the world is a pretty difficult thing to do.
Allen Holub [holub.com] has a great series of articles [holub.com] on Java threads. He goes into some length in explaining both the threading models of both NT and Solaris. He also nick names the NT thread system as an 'unholy mess' which is quite amusing
Re:The answer reflects the question (Score:1)
The reason VB is so popular is that people who don't have the skills to be a real developer can wire together components to make simple applications, especially database frontends. Companies can pay these VBers a lot less than a software engineer would demand, so they're happy too.
Delphi is similar, but sucks a lot less.
Re:FUD (Score:1)
> indentation to control block
> termination is a BAD idea.
I assume you a are refering to Python. It's a wonderful language but this "feature" (as somebody called it) really pisses me.
Just my 0.02 cents.
VB vs JAVA (Score:1)
Re:Visual Basic, et al (Score:1)
Re:Let's define a "real programmer" - Hear, Hear (Score:1)
This java and VB bashing crap is just that, "Hey, let's all feel superior. My repurposed teaching language (Pascal-Delphi) is better than yours (VB)."
Linux admins are also not "real programmers", but hopefully they are real admins, lord knows we could use some good sysadmins.
Re:Probably not representative... (Score:1)
drwln 482 382 5 1
clr 83 255 48 0
Oh yea. I almost forgot to say how much everyone who doesn't know c or c++ sucks. You all suck! A LOT!
Re:It's all legacy code... (Score:1)
The fact is, C/C++ is used quite a bit in large corporations. VB is a very accessible, easy to learn language and that's why you see it so much in corporate America. But I work for a quite large Internet ecommerce site, and Java has exploded in use here in the last 4 months. Most of our legacy code is C/C++ and Perl, but almost all new development is in Java. We may eventually rewrite the C/Perl stuff, or we may just use it till it dies.
Re:The answer reflects the question (Score:3)
Since you've no doubt been duly flamed over the bogus distinction between "business" and "real world" apps, I won't visit it. I'd just like to register my opinion (okay, pontificate) on what a "real-world" app is.
Real world is not when your entire company has a need, goes to development, draws up requirements, negotiates price, goes through develop, test, deploy, test for real, revise, etc. Real world is when a department head has, say, an employee database like schedule times, for example, and wants it popped up on a web page or viewable in some quick tool they can pop up on their desktop. They go to the department's local programmer-dude (which I am in my department) without an actual developer title (usually a tech/admin) and say "hey can you do this?". Tech bangs out some perl or VB or shell script or excel macros, and there ya go, that work for you? Good, problem solved.
Real world is ad hoc, and VB lends itself to ad hoc solutions. I would consider software engineering to be necessarily several levels removed from this Real World, in order that the problem space becomes their world for an extended period. That's when you have systems programming languages like C++ or Java (yes it's the systems language of the Java platform).
Personally I don't think VB is ad-hoc ENOUGH, and its greatest weakness is that it only manages to do a half-ass job at being a quick-and-dirty prototyping system and being enterprise class, by trying to be both.
9 out of 10 MS Developers agree (Score:1)
I've never been too impressed with visual development tools. They can be handy for laying out what your windows will look like, but so can a sheet of graph paper. And they tend to lead piss poor programmers into believing that they actually have enough talent to stay in programming. This in turn leads to good programmers having to come in 6 or 8 months into a project and redesign and rewrite everything from scratch. The Morale of this story being that it doesn't matter how good a programmer's tools are if he can't tell his ass end from his elbows.
Of course if you want to do Windows programming your choices are Visual something-or-other or deal with Microsoft's decade-old programming model. Scratch the surface and you'll find that significant portions of it are still 16 bit. How primative!
Re:The answer reflects the question (Score:2)
Using VB does not make one a moron; but the thing with VB is that because it's very simple to learn it tends to attract more morons than a lot of other languages. Thus VB programmers get a bad reputation (which may or may not be deserved, though every VB programmer I've known has fit the stereotype).
--Just my $.02
This survey is totaly worthless (Score:1)
There are millions of Developers out there and to only ask 150 is just plain stupid.
Visual BASIC #1 Most Popular Language (Score:1)
Granted my C/C++ skills would come in handy to make more robust applications; however, I have to have other programmers in my company cover for me when I am not there. Since they don't know C/C++ but know VB, I have to develop in VB.
Java not only is new, but when Java is used the program that runs will run a whole lot slower than one written in VB or C/C++, etc. Java has to get around a lot of bottlenecks that slow it down to unacceptable levels.
Visual BASIC, as far as I know, is limited to the WINTEL platform. Windows and X86 CPU chips (unless I am missing that Alpha version of VB, didn't know that one existed?), you won't, for example find it for MacOS, Linux, BeOS, AmigaOS, etc.
For serious programming, Java does not cut the mustard, in my humble opinion. Sure it is portable, but my employers look for more power and something that the team I work with can program in. Out of like 12 programmers, only 2 of us know Java. But 12 of us know Visual BASIC. So guess which one is the lowest common denominator?
Re:Thoughts on Languages (Score:1)
I programmed in Java before C and found it to be much easier. The difficulty in Java is simply in understanding object orientation. Once you understand that it's all easy.
Compare that to C where you have to understand pointers, precompiler directives, makefiles, and all kinds of nasty things.
The above example shows one thing that Java does amazingly well compared to C: strings. As a beginner programmer the concept that a string is a null-terminated array of characters, and that when you talk about the "string variable" you're actually referencing a pointer to the first element in that array... that's just plain hard. Java makes Strings super easy.
Compare:
if (strcmp(blah, "bob")) to
(ps, you also have to include the right libraries for this one using strange precompiler syntax but we'll ignore that for now)
if (blah.equals("bob"))
Which is more intuitive?
Java is very young, very unstable, and not very well suited to certain things. But I'm convinced that if you give it about 5 years it will be a huge mainstream language. I'm actually surprised that in such a short time, and despite all its flaws, that it's already in third place!
Re:Programming Standards (Score:1)
unsexiness, next to that Oracle package and that Clarify binder.
Isn't it true most programmers using stuff
like VB are like painters who are into
abstract art just because they don't have
other skills? Too unfair?
Are there really people who *want* to use VB?
Future Survey (Score:2)
--
Java's in third? (Score:2)
-----------
"You can't shake the Devil's hand and say you're only kidding."
Re:Java's in third? (Score:1)
Re:Thoughts on Languages (Score:2)
Re:For Pete's sake, moderate that down! (Score:2)
As for programming, I've probably more experience behind the screen than both you AC's combined. I was writing speech synthesisers for the Commodore PET by the time I was 10, and radio telescope control software in pure 6502 machine code by the age of 12. I have little patience and less time for low-grade flamebait from a couple of AC's. I -certainly- understand the OO paradigm better, and have far more extensive knowledge of microprocessor design.
A bit of flamebait :) (Score:1)
defined "programmers" for the purposes of the
poll
Ha! (Score:1)
Where'sDelphi? (Score:1)
(FP?)
Let the language wars commence! (Score:1)
I'm sorry but I can't agree on this.
> . It suffers from a buttload of unuseful syntactic sugar
eh? I find it very readable.
> very obviously alot of features have been put in to keep people used to C++ idioms happy
If you mean things like virtual methods & function overloading, naah, they are put in because they are useful.
> Unfortunately they also introduced the same flaws as C++ has.
Hm. They purposefully left out C++ style multiple inheritence and templates as these were regarded as not worth the complexity. C++ Operator overloading - now there is unuseful syntactic sugar. Guess what, Delphi doesn't do it.
I honestly don't know what flaws you are refering to, unless you are one of them wussy VB programmers that regards real OO as a flaw because it's "too hard"
> Object Pascal can only be called an elegant programming language if you happen to think C++ is an elegant programming language
I beg to differ. I think C++ code is ugly write-only typrographic soup, and Delphi code is elegant.
Re:VB not so surprising... (Score:1)
The biggest problem with using Tkinter is that the Tk event loop varies so much from the standard windows event loops. You can create Python COM objects, but embedding any Python Tkinter objects into another GUI (say in Delphi) is a real problem (that's where Pythonwin comes in).
Despite this, I still tend to do a lot of work with Tkinter, for one good reason - I can work on my Linux box at home and bill my hours!
Dumb poll (Score:3)
If it's quick and dirty where getting the program done quickly is more important than having it run quickly, I'll choose perl.
If it's something that is large and involved, and it doesn't matter if it's slow, especially if there is a GUI involved, I'll choose Java.
If execution speed is everything, then I'll choose C.
If execution speed is important, but it's a large involved project, then C++ might provide a better compromise than C or Java.
Re:The answer reflects the question (Score:1)
I have to admit being very snobbish against VB , but I try hard to accept that it does have a valid place in the market because it does meet of the needs as a solution of a larger number of problems.
Re: Python (Score:2)
I was blown away when I heard about JPython [jpython.org] the other day. This will allow you to load and interact with Java objects on the fly, in the interpreter. When you're done you can stream it all out to disk. It's like a toy shop
Plus, the Win32 API and COM is exposed under Python too so you can take your pick. (Or Tk for the Unix folk.)
Anyway, If I wanted to read code that looks like Perl, I would 'cat' a core dump.
VB not so surprising... (Score:2)
I think that VB's popularity is mostly due to the fact that it's very VERY easy to create simple applications with it. In the article, they talk about "Business Software". For PHB's, all that counts is the GUI, so VB is a lot easier there.
To use any of the other languages, you need to be a Real Programmer. I think C or C++ is more used when what's under the GUI is more important (technical software?).
Greetings,
Ivo
Re:VB not so surprising... (Score:1)
Well.. then why don't they use Tcl/Tk or Python?
Survey results erroneous. (Score:1)
Learn VB! (Or maybe not) (Score:1)
*sigh*
Re:The Holy Lanuage War (Score:1)
The general tone of the discussion though (not just this thread) was that VB is to easy to use and therefore should be immediately dismissed as a "serious" programming language.
Visual Basic, et al (Score:3)
I've seen Visual Basic used for *ugh!* web-page script stuff, and by engineers who wanted to crank out some cheap & nasty code, quickly. I've not once seen it used for any real work, though.
C I can understand. Java, likewise. Not only is Java new, the API keeps changing. There's virtually no relationship between one version and the next.
(Even for the Swing toolkit, which being new, you'd have thought Sun would standardise between 1.1 and 1.2... no way! It's in javax for one and java.swing in the other. During the betas, it's also been in java.awt.swing.)
Tcl/Tk also suffers from the lack of a solid API, with each new release having some major incompatibilities. Perl seems to be fairly solid, but Perl/Tk seems to always be several versions behind both of Perl and Tk.
Python only has one maintainer, last time I looked, which would give most industrial developers the jitters.
C++ is ok, but is a very complx language and seems to still be inefficient, compared to other languages. Maybe the problem is that the compiler has to translate between the OO model and the traditional functional model. If you ran C++ on an OO-based processor, it might actually have an advantage.
Another poll, another fiasco, anyone? (Score:1)
Re:Let's define a "real programmer".... (Score:2)
If some of the arguments presented in this discussion held water, nobody would have written any good music on the piano. It's too damned simple an instrument; however could you play or write anything more complex than twinkle twinkle little star? After all, look at its interface. Notes get lower as you play the keys to the left, and higher as you move to the right. Volume is proportional to the velocity with which you strike the keys. Only "tune kiddies" (or perhaps "score kiddies" is the better term) would be caught dead with one of those things.
I'm a strong believer in having a life and as a result also believe in tools that let you have a life. For most business applications, VB does the job quite nicely. Need speed? I'll use C++ Builder. Writing an enhanced CD? Director. CGI? Python. Given a choice between being "elite" and having a life, the life wins every time.
Perhaps it's time for everyone to go demonstrate the slashdot effect on the Ask Tog [wwwasktog.com] site and look at the article How Programmers Stole The Web [asktog.com]. It provides the best and most rational argument for having an "easy" language around: "real programmers" aren't the only people with good software ideas. Think of the of those who don't qualify as "real programmers": Dan Bricklin, who came up with the spreadsheet, and Robyn and Rand Miller, who came up with Myst .
Re:FUD (Score:1)
I'm not looking for a holy war, I just would like more info on your point of view.
A MUD language is my favorite (Score:2)
MOO is by far not a very featureful language in terms of library code. It has no native interface, it has no graphics libs, it doesn't even handle I/O very well. However, what it does have is a very consistent and sensible syntax using if/endif, for/endfor, while/endwhile, try/endtry, and a pretty-printer that lets others read your code in an indent style that's readable but doesn't force you to use it when entering the code (I wish python had figured that out). String and list slicing use identical syntax (hint hint perl), lists can be created and nested as literals and spliced with a single operator (another hint, perl. python, how about a splice operator?)
But what I love most about MOO is the flexibility. As an artifact of the way the MOO command parser was built, methods on objects can have aliases and wildcard endings. This is poor-man's pattern matching and meta-object protocol. Not as ultimately flexible as python (and perl if you really dig into the guts) but intuitive to grasp. You can call methods as a string expression, and it will search for the proper method, matching against aliases and wildcards. I've written some amazing funky dispatch tricks with this.
Any language can do this trick, python is pretty close to it and includes even more features than MOO (like multiple inheritance), and java has niftiness like anonymous classes (java has several scriptable variants now). But what really shines about MOO for me is that the write/run cycle is practically zero. I can have a MOO method in an editor window, make a change to it, and the change is there. I am hacking on a running system, there is no script to invoke, there is no explicit compile command (well there is, the core just hides it very well). I change a line of code, and the whole database of code has its behavior changed as intended (well, hopefully
MOO is ubiquitously persistent. When I create an object, there are no explicit semantics to "pickle" and "unpickle" it. It's just there, it's live, it's always there as long as the database is running.
Finally, add multi-user protection into the equation. Every persistent resource has an owner, including methods, and methods always run with the permissions of their creator, and that's on a per-activation basis. Call a method owned by someone else, it runs with its owner's permission. Only the superusers (wizards) can set the permissions otherwise. This means a trojan horse program isn't possible, because it cannot run with your permissions. It could call an improperly written method that that could mess you up, but it wouldn't have required you to run it in the first place. I am seeing much movement toward persistent object databases, but I have yet to see one that takes multi-user protection seriously I've seen Perl and Python both try it, but it's laughably light security. You write an execution monitor that can potentially be modified by code it's meant to monitor, and I don't think I have to tell you what that means to security.
Give me an industrial-strength language with a transparent write/compile/run cycle, a persistent DB, and bulletproof execute-as-owner permissions, and you've got a convert. Till then, I hack in "standalone" languages for work, but I'll stick with MOO for the joy of hacking it brings.
Re:An OO-based processor ???? (Score:3)
As for processor designs, let's start with the Transputer, where the machine-level instructions had a near 1:1 correspondance with the Occam programming language. :)
(I -loved- programming transputer arrays. THOSE were fun! And blew the spots off anything Intel could churn out.)
Then, I remember from my 1st year at University, talk of processors who could execute Pascal directly. Their opcode, again, had a near 1:1 correspondance with the Pascal language.
Even traditional processors, though, such as the 80x86, could be considered functional. You have conditions, loops, data types (8, 16, 32, 64, 80 bit variables), procedures & subroutines, maths operations, and all sorts of goodies. All the capability you expect in a functional programming language.
An OO processor is a bit more complex. Basically, it would need to think of operations on an object, rather than operations on a given address, which otherwise has no more significance than any other address. For that, you have to stop thinking in terms of linear, flat memory, but rather have each object in it's own "contained" memory space. ie: each object, at each level, would become a virtual computer, with "connections" as necessary. Not just at the "programming" level, but at the processor level. The processor itself would need to see the system that way.
It's my belief that translation between paradigms can never be as efficient as understanding the paradigm in the first place. Thus, it's my belief that a processor that is centered around the OO concept, and sees objects as objects, rather than flat memory models, would inevitably be better than translation.
Re:Thoughts on Languages (Score:2)
It runs Java applets, it's faster than a WOW Potato Chip, and it's surprisingly stable(unlike anything embedded in Netscape).
C'mon. You know you'd love it if it came from Linus. You know you'd praise its speed, and say that its bugs would be worked out soon enough, etc.
Linux bigotry isn't any more rational than PHBigotry, but it sure is a hell of alot more annoying.
This is coming from a hardcore Linux user, btw.
Yours Truly,
Dan Kaminsky
DoxPara Research
http://www.doxpara.com
Re:Makes sense (Score:2)
You get what you pay for.
Re:Get a life! (Score:2)
Wait. His argument was that in extensive use he has seen no problems with Python's indentation. How can you rebut that, aside from offering contradictor experience? All you have is a theory that it might impact productivity (and you're wrong about the details of the theory -- the odds of an indentation change actually changing the _meaning_ of the code without being an error is VERY small, and even that possibility can be eliminated by using tabnanny).
He didn't tell you you can't have an opinion; he told you exactly why your opinion is wrong. Which it is. Although I admit he also put a silly title on his post, so I can understand why you'd be annoyed.
To be fair, I have never seen optional braces cause problems in production C or C++ code.
What do you mean by "To be fair?"
How much production C code have you seen? I've seen and written my share, and I have seen the optional braces cause problems in real code. To be sure, it wasn't production code, because we corrected the bug before we shipped it -- but that was just luck (and skill), not any feature of C.
I could imagine an extra tab causing problems in production python code,
Imagination doesn't carry the day.
-Billy
Re:Makes sense (Score:2)
Re: (Score:2)
Re:The answer reflects the question (Score:3)
Let's be fair here, there are also plenty of morons who write in C. These are the ones can hammer out code, but they have no concept of what the application will be used for, how it fits into the business, or why the app is needed in the first place. They just take the specs and hammer out code. Are these guys "real developers?"
I think "real developers" will use whatever tool they're using to the greatest possible efficiency, regardless of what that tool actually is, be it VB, C, C++, Java, Cobol.
An example-- we've had to develop a warehouse management system that handles importing data from Symbol barcode guns, processes it, prints out pallet labels (with more barcodes), balances/stages/repairs orders, and finally stores it in our Informix system (SSA BPCS). Of course, there's a whole bunch of other "stuff" going behind the scenes, combined with making a user interface that can be used by minimum-wage guys on a shipping dock. Do you know how many man-hours that would've taken to do in C++?
In VB, it took one guy 6 weeks, and surprisingly enough, the system works very well.
This, to me, is a perfect example of a real-world application, not just "stringing together components."
Now, we could've spent 6-12 months doing this in C++, and it would perform probably perform... about the same.
At any rate, you *can* write real apps in VB, just as you can write crappy apps in C/C++. It depends on what you want to do, taking into account the capabilities of the language vs. budget constraints.
Your last statement would suggest that VBer's are higher in demand, because they can do things more quickly and less expensively, correct?
Have you actually tried to convince management that slower and more expensive is the way to go for any particular in-house project?
The Right Tool for the Job (Score:2)
Programming is (or should be) an act of engineering. A programming language is a material from which we shape a piece of software; knowing the form our programs will take gives us the insight to select the right programming language.
In the last year, I've been paid to write code in C, C++, Java, FORTRAN(!) and Visual BASIC. My current projects include a C-language network simulation and a Java-based server-side application. My personal preference is largely based on what I'm developing; there is no perfect programming language.
IMNSHO, Visual BASIC and Java suffer from the same problem: They are trying to be everything to every one. VB works well for quick business apps, although it's lack of serious structure can breed poor programming practices. Java is a fine tool for web applications and server-side processing, and could be better if Sun gets its head screwed on straight.
My language of preference for most things: C++, because of its inherent power and flexibility -- but Bjarne's creation has its limitations, too, and suffers from annoying complexity. As creations of the human mind, no programming language will be perfect.
Advice from a grizzled 25-year veteran: Learn the fundamentals of program design, object-oriented decomposition, and computer architecture. Try every programming language you can get your hands on. The best engineers are those that understand both design and materials; if you can analyze the problem, you have a far better shot at picking the right tool for the job.
Re:Java's in third? Eeevil! (Score:2)
Uhh, yes you can.
Go back to class, kid.
The answer reflects the question (Score:4)
I'm sure VB is hot for business apps. But I can't say I care. What about real-world apps ?
One heck of a lot of programmers use Pascal (because of Delphi), and we're a lot out there using C and C++ because of run-time efficiency and portability, and because of language sophistication (well, that holds for C++ at least).
The main problem I guess is, that people tend to see the most popular language (or, the one that requires the most programmers to work with it) as the ``winning'' language. In real-world large applications however, a number of languages are often used. LISP/prolog for the extensibility and AI parts, C for the APIs, C or C++ for the core parts, Pascal/VB/objc for the front-ends etc. etc.
The fact that a language has a lot of programmers either reflects that it is a language which is good, or a language which require many people working with it to actually get results.
You be the judge.
I don't get this at all. (Score:3)
Java has been around for about 3 years.
C/C++ was around when time dawned
But VB still came out on top when 150 developers where polled.
Perhaps they only asked developers who worked in Microsoft houses.Perhaps Microsoft funded the survay. Perhaps we are all missing the marketing from Microsoft and are using the "wrong" dev tool when we whip something quick and dirty up in Perl.
IMHO C/C++ will never die out. Java will continue to grown as long as Sun and IBM continue their support. VB and the other Microsoft "Visual" (I never did work that out) development tools will last as long as Microsoft continues it's agressive marketing of NT server / Windows dekstop enviroments.
Re:Java's in third? (Score:2)
To answer your questions: as far as I know, there is no current publication "The Java Language Specification", which specifies the language in all its glory. There exists an OLD version (for version 1.0 of the language) and an appendix, (patching the specification to 1.1), check here [sun.com]. But there is nothing current, i.e. for the current versions of the language. This complicates making a JVM and writing applications - and of course makes it more difficult to decide to blame a problem on the provider of the JVM or on the application. Instead, Sun/Javasoft have specified a comprehensive testsuite, which is supposed to ensure "standard compliance" (check here [sun.com]). I have not tested this, thus I have no opinion on that.
That said, the JVM's still have a long way to go before being mature. In particular the JVM provided by Sun for Solaris is disappointing in speed as well as other aspects (while the JVM provided by Sun for MS Windows is suspiciously optimized....).
Re:Java's in third? (Score:3)
I've used Java intensively for many different purposes, and I almost always run into problems when dealing with cross-platform usage of multithreaded programs. thread scheduling, for some reason, is in the Java language specification specified to be left unspecified. This leaves the implementers of the virtual machines free to select whatever model they desire (and that is usually the simplest: non-preemptive fifo-scheduling), complicating development of platform-independant multithreaded applications (where one often expects time-sliced, "fair" scheduling of some sort). One solutions is to do as we've done in the Actor Foundry [uiuc.edu] and implement a dedicated scheduler in Java. That way one can be sure to have threads scheduled in the way one wants....but at the expense of performance.....
Another drawback with Java is the lack of an updated language specification (at least last time I checked there had been no updates for a few versions).
I think Java is being used....but I also think that the language still has a way to go before being "mature" enough - part of that way would be completing the specification such that the virtual machines behave alike (and such that the "write once, run anywhere" can be delivered as promised by Sun...).
Just my $0.02....
FUD (Score:2)
You may well be familiar with all those langauges, but I doubt you're very
familiar with modern C++.
C is NOT faster than C++.
If you use a bunch of objects inappropriately, then yes, it will
be slower than the pure C version but if you need to achieve the
same level of flexibility and encapsulation and you have a decent
optimizing compiler then the C version will be roughly the same speed.
Fortran - generally is faster than C++, especially for numerical
work. However check out http://oonumerics.org/blitz/
for C++ based numerical code that is as fast as fortran
Perl - is being re-written in C++, and somehow I suspect
that perl's authors have a better understanding of perl's strengths
and weaknesses than you do.
Occam - was effectively the assembly language for transputers, I too have programmed transputer
arrays, and yes, they did kick ass, but it's pretty fucking useless for anything except low level programming on
massively parrallel computers. Also, using indentation to control block
termination is a BAD idea.
Smalltalk - if you have an implementation that runs faster than sensible C++,
please tell me where I can get it.
I Agree ... (Score:4)
What this survey proves is that the term 'developer' today is a far cry from the same term used 10 years ago. VB didn't exist like it does now (it was there, but it wasn't the same product). Large corporations like packages such as VB or Developer2000 for many reasons.
1) It's easy compared to the likes of C++ or java and because of this, you don't need to hire top-notch talent. The pool of available 'programmers' is much larger. Don't underestimate how important this is to a company.
2) They are RAD tools - much quicker development and turn-around times.
--That being said, these packages have their limits, especially when it comes to producing a large transaction-based system. I would never trust such a system built upon one of these packages.
Re:An OO-based processor ???? (Score:2)
C++ is a great language, and I enjoy programming in it, however -because- it's OO, it has the inherent drawback of translating from the OO paradigm into a functional one (machine code is, on all existing processors, based on the functional design concept, not an OO one.) It also has the drawback that it's object-based, not pure OO, which means that you can't explot many of the speedups you could get from the OO approach.
C, and many other "traditional" 1st and 2nd Generation Languages, have an almost direct mapping from the source to the unoptimised assembly. This means that you have much more control over how efficient the compiler can be in generating the code and, therefore, in optimising it.
With OO languages, no such mapping exists. There is no way to tell what the compiler will generate from a given construct, ESPECIALLY if you're taking advantage of the concept of objects, and the exception handling. (And if you aren't, then why are you using C++ at all?)
If you can't use code you can be sure will compile well, then you can't possibly write as efficiently as you can in a programming language where you have enough control to be able to hand-optimise your algorithms.
Re:Get a life! (Score:2)
I believe you. I'm just stating that I've been involved in much development, and I see it happen all the time. The only cure is to always use [short and] curlies.
I can picture it happening, though. My point was I think it's unlikely that python has never had the same problem (indeed, I'd be very suprised), and so the unique indention model doesn't really serve any good purpose.
The *purpose* of the indentation isn't to avoid that particular problem. It's twofold: first, to remove a nasty source of style debate; and second, to make code easier to read by making style cues match up with meaning.
It works very well at both.
Oh. You're saying there's software (tabnanny?) available to assist the programmer to make sure such errors do not occur? I guess it has come up, and I don't need to use my imagination.
Nope -- tabnanny was written unwillingly after the insistent demands of people who knew nothing about Python.
(ps. I hit enter before I was done, hence the post and a half. I blame slashdot. perl, rather
*Grin*.
-Billy
Re:Java's in third? (Score:2)
At my company, we have implemented a complex time-series calc engine for financial data. It is implemented entirely in Java. We built it because there is no equivalent off-the-shelf application on the market. This application is way more complex than you can imagine and is definitely a "serious application".
Java is now our standard, enterprize development language. Legacy maintenance code is still in C, C++, and Perl. As the execution speed of Java increases, I do see Java replacing all of these.
I can honestly say that after coding in Java for the past 6 months (coding C the past 4 years), it is far quicker to implement a lot of stuff using Java than C. This is why Java has become our de facto development language.
--
Not too surprising (Score:2)
If you need a quick GUI, say for a DB front-end, it can be tossed together in vb very quickly. Java's nice, but the gui stuff keeps changing. And, whatever you think about the COM/CORBA wars, there's an awful lot of useful COM objects out there, and vb makes a nice glue for them.
Makes sense (Score:3)
For contrast, consider something like C++. This is simply not an appropriate choice as a first language for someone new to programming. People (ab)using C++ without having a decent grasp of programming (particularly modularity/OO aspects) first have caused more pain and frustration for their better-trained fellows than I care to think about. In this group I include the designers of the most common C++ class library - MFC, which by itself has done more to turn people off C++ than even the language's own nastiness could do. This relative inaccessibility explains C++'s place behind VB.
As an aside, is perl a good choice as a first language? Personally, I don't think perl is a good choice for much of anything, but I suspect that even the most ardent perl advocate would admit perl isn't likely to appeal to first-time users. It's not meant to. (Python, on the other hand, would IMO make a very good first or teaching language.)
Java's low position on the list is best explained by three things: its relative youth, lack of proper support for certain types of programming, and performance. The youth issue is pretty self-explanatory. As for lack of support, here are some thoughts:
I think the performance issue is mostly BS. Sure, an interpreted or incrementally-compiled language such as Java will never be as fast as a fully-compiled language, but with modern technology the difference is very small. The weird thing is, the same PHBs who can't get "Java is slow" out of their heads have no qualms about using VB. What's up with that?
Re:Thoughts on Languages (Score:2)
I think Java is a pretty good language...some things really bug me (inability to abstract fields in a class, etc.). I, personally, would love to see Java natively compileable. There really isn't any reason it can't...it's a language just like any other.
Then we would see
Thoughts on Languages (Score:3)
The fact that the entire language seems to me like a gigantic glueball(in the sense of it binds everything together, it picks up some rather shocking cruft, and you'll sometimes get stabbed by something locked inside) doesn't take away from the fact that glue can be great for whipping things together--just ask TCL developers.
Past that, I'm not surprised Java hasn't overtaken C. Beyond the whole speed factor, C is just alot cleaner for the non-expert programmer to mess around in. Particularly when it comes to making patches to existing codebases, there's just so much less to need to figure out in C than in a fully object oriented language such as Java. Granted, when C is forced to do things C does not like to do, C gets very crufty(thus the recent complaining I've been hearing about lsh's pseudo-object system), but a) There's a massive codebase out there written in C, b) There's a massive amount of deployed C code(this isn't the same as a), and c) C is less daunting for a moderately skilled programmer to mess with.
However, I must say that the reason Java hasn't displaced VB down to third(VB/Java address a different market than C, if you think about it) is that Sun royally and utterly bungled its deployment. VB projects "compile" down to an
Java development with the JDK is laughably awful, and will someday be a textbook example of how not to burden your coders and your users.
From what I've seen--and I'm sure the experts can enlighten all of us further--merely getting javac to function(got everything in the right folder? Got your path environment set right? Sacrifice the correct barnyard animal?), then executing that Java app(better nuke the henhouse just to be sure) is far beyond the difficulty in even writing a simple Hello World!
The fact that code never compiled into a single file didn't help either--web deployment was a mess, with forty web server connections for a single semi-useful app. JAR finally fixed this, but THAT standard got mangled by CABs.
Don't even get me started on Code Signing--there are three, three, three ways to go for this little project.
Alot of the problems wouldn't have been as significant if javac was as straightforward to play with on your average Linux distribution as, say, gcc. The non-free aspect of Java destroyed this possibility--and Sun's new "Gotcha Source" License isn't helping.
Java came out of the gate hard to install, harder to deploy, slow to load, and slower to run.
Things have gotten better--J++ and the MS VM have been instrumental in this regard--but the core usability of Java is farrrrr less than VB, and even less than C.
Actually, I had just about given up on Java until I found the one company that has truly understood the promise of Java. Mindbright [mindbright.se]. I've already written about these geniuses here [slashdot.org], but suffice it to say, the fact that there's now a extremely high quality Java deployed SSH and SSH-VNC(VNC into those hosts behind the IP Masq, all via SSH) solution is amazing, and caused a complete reversal as to my opinion of the viability of Java as a useful platform.
Using something written in a language on a daily basis will do that.
Yours Truly,
Dan Kaminsky
DoxPara Research
http://www.doxpara.com
Re:Java (Score:2)
I will work on any Java, but it specializes in sniffing out and optimizing critical performance areas, "hot spots", so server side code, which does a lot of repetitive stuff will see the best increase. Unfortunately we don't run our server stuff on OSs with a production ready "Java 2" VM available, so we can't take advantage of it really. And the older JITs are notorious for screwing things up, so we disable JITting too.
"note that in the volano benchmark, the much touted HotSpot comes behind the IBM JVM, so it is not the magic bullet, but anything that can help increasing speed is welcome"
According to this report:
http://www.javalobby.org/features/jpr/
IBM's JVM was clearly the winner, but HotSpot was not far behind. Unfortunately, IBM can't possibly keep up with releases as fast as Sun can, so HotSpot will always be the fastest VM for the most current release (I figure). I don't know if IBM has a "Java 2" JVM out yet, but tge HotSpot engine in 1.3 looks pretty good.
Re:Java (Score:2)
Why Not VB? (Score:2)
Re:A bit of flamebait :) (Score:3)
Re:The answer reflects the question (Score:2)
VB is very simple to learn, which is why there are plenty of people who use it but don't know much about programming theory. I think my previous, albeit limited, programming experience made me productive in VB almost immediately.
I certainly don't claim to be an expert programmer, but I firmly believe that being good at programming is independent of the language you use. I have met some truly brilliant VB programmers (many of whom aren't even MS Certified, and it's too bad that many resumes are overlooked because of that fact)
Look behind the code, for instance at the algorithms and ideas used-- all the good programming concepts and theory can be applied to VB, which is how ones gets nice apps out of it.
Nowadays I mostly write VB stuff, because that's much of my job. I'm just starting with shell scripting and perl on my home Linux box, but that's just for fun right now since I don't see that getting incorporated into my career just yet.
Anyway, the "morons" learn VB from the "21 days" book and that's it. I learned most of the syntax from that same book, but it doesn't actually teach you how to write PROGRAMS. That's where books like Code Complete and my old college texts come in handy, and I've also applied some stuff from various Algorithms in C and Java type books. Most of the "good" (as opposed to Evil) VB programmers are the same way.
So, my point is this: VB is a very accessible language. You don't have to know a lot about it to write something that compiles. But there's also a lot of potential there, which fewer VB programmers will ever learn to use. I think that many of the hard-core C types dismiss VB for these reasons alone: 1) It's "BASIC" which means it's for wussies, 2) It's Microsoft, and 3) They don't know much about it.
what this study actually means (Score:2)
The survey found that 35 percent of programmers use Visual Basic as their preferred language for writing business software, while 20 percent picked C and C++. Java ranked third with 9 percent in the third quarter of 1999, up from 5 percent six months ago.
The question is how to interpret the reoccurring word "business" in this quote, does it mean:
I suspect it is the latter, and if it is - I'd rather have my language of choice not show up first on that list. In general, I have found that closer an application is to money (manipulating it, tabulating it, etc.) the less fun it will be to work on and write. Would you rather write software to calculate mortgage payments or manipulate/view objects in 3d?
I believe the type of software most "real programmers" enjoy writing is the type of software that poses enticing and possibly difficult problems to be solved, programs that are heavy on the mental stimulation aspect. The problem is, the programs that are most highly in demand are the run-of-the-mill, let's-crank-it-out business applications - after all it wasn't that long ago that COBOL was listed as the language having the largest number of active lines of code (it may very well still be true today).
It is possible that the study is really asking: "When you don't want to bother actually having to get too much into the computer science side of things and just want to bang out an app as rapidly as possible, which language do you use?". If this is an equivalent question to the one they are asking the results are hardly surprising.
Java (Score:4)
Linus likes VB too (Score:2)
"Don't get me wrong, I like Visual Basic, really, and I think it is one of the best successes Microsoft has had. That was because it was a really good medium for customization, it was a great medium to the front ends for the real work. I think that is the future."
Compared to working with MFC, VB is a real pleasure. It can produce huge, slow, klunky applications, but it does so quickly -- which often counts for a lot in a internal business tool environment.
Re:Java's in third? (Score:2)
AFAIK, the reason thread scheduling is left unspecified is that all the platforms that can run a JVM do not all have the same threading capabilities at the Operating System level.
--
Re:Java's in third? (Score:3)
As an aside, I'd like to comment on the issue of speed problems. If you think that Java must be slow, you are mistaken. Java 1.0 was slow. Java 1.1 and 1.2 do not have to be. My experience has been that Java makes it easy to write slow programs, but that a properly architected program written by someone who understands how Java functions executes very fast. There are also options like native compilation, Hotspot, JIT compilers, and modern VMs which combined with a properly written program will result in very good performance. No, Java is not fundamentally as fast as something like C or Fortran, but the idea that it is too slow to be useful is obsolete.
Re:How do you combind... (Score:2)
You don't have to use all that many of the C++ features as long as some are useful -- such as overloading. For some applications, you wouldn't use templates, multiple inheritance, or a boatload of other stuff, but a handful of classes and some of the syntactic sugaring can save you time -- and it's not strictly C anymore.
heh.. (Score:2)
That's really scary. Perl is one of the few ``evolving'' programming languages that I like. In fact, I can only really deal with liking one at a time, which is another reason why I dislike Java, for those of you who bother to track my commentary (and for them I offer my sincerest apologies and condolences..).
[engage ``mindless'' psychobabble mode in a swift departure from original objective of this post]
Polls are always pointless. Obviously, whenever you ``poll'' anyone, you're only getting the goods from a narrow group of individuals (especially since developers working on specific tasks will require specific languages to get specific results.. ha!). It may or may not reflect well on the general populace (or other relavent supergroup) at large.
Visual Basic.. is not something I'd ever want to use for much of anything. C/C++ is perfect for general purpose programming. The kind of project you're doing will decide which you will want to use (not everything needs to be C++, though using ``clean'' C is usually a good idea -- that is, the grand majority of C that is compatible with C++). Java is probably the next best thing. What makes it an attractive choice is all of the features that are ``built-in'' (while the ANSI/ISO standards for C/C++ only go so far with what they cover as being the ``standard''.. graphics are beyond their scope, for instance).
C/C++ are going to remain the ``standard'' for quite some time. Java is somewhat inflexible, and since it is a corporation which regulates the standard, I'd fear for anyone wanting to jump whole-heartedly onto /that/ boat. I'll take ANSI/ISO stuff /any/ day. Java is good for when you want to do finish a program faster than you could in C/C++ (and don't mind the performance hit). And as much as certain bigots are loathe to admit it, Java is a simplified language meant to protect programmers from making common errors. It was designed that way (that doesn't mean that Java programmers are intrinsically ``less intelligent'' than C/C++ programmers, though you might want to wonder about the ones that slam C/C++ for no coherent reason whatsoever).
The short of it is this: There's really no point to these polls. I've never even bothered reading a poll like this before, and I could have already told you that if you're a programmer (working for a company), you're likely going to want to learn C/C++, although there is also a lot of Java work out there (in case you want to learn that instead of or in addition to C/C++.. either is likely to be a viable option), and if the company you work for deals with Microsoft stuff to any extent, you're probably going to want to learn VB (or find your niche doing something else ;). Real complicated, eh?
Every programming language has its uses, and functionality is a little bit more important than popularity. After all, in the realm of OSes Windows is still the most popular, but how many people think it's a major win? Popularity polls are pointless. I'd much rather see an academic comparison of the ``best'' programming languages side-by-side.
Anyway, just because some fools polled some other fools that didn't think Java whooped as much ass as VB doesn't mean it's serious lossage (or that it's ``not-so-hot''). But then, to do a story, you have to have some conflict, right? =P
An OO-based processor ???? (Score:2)
Last I checked their were no "functional" processors either.
Also "C++...seems to still be inefficient, compared to other languages."
What other langauges are you talking about ?
OK, it's slower than Fortran or assembly and C++ does tempt
people to do wasteful things especially when they don't
know the pitfalls, but it's pretty efficient when done right.
Re:Poll here, poll there (Score:2)
Chris Wareham
Re:Why Not VB? (Score:2)
...it allows a C programmer to graphically layout a simple GUI, specifying callback functions and arguments. It then generates headers and
Being mostly a C/C++/Perl programmer w/ a slight distaste for the AWT, and a greater one for Tk (which, to be fair, has graphical layout tools like XF, and *is* portable to Windows as well as Unix boxen), I find it useful.
Admittedly, the designer isn't *that* powerful (for instance, while the code will let you have a scrolling list of drawable canvasses, the designer does not appear to have a way to do that -- so what you do is write a scrollbar callback that does a left or right shift), it still lets one put up a decent utility pretty darn fast without worrying about packing or so forth.
Re:An OO-based processor ???? (Score:2)
Ergo, different optimizations may impact OO-style programs in different ways compared to straight C; and it may be possible to design an architecture that minimizes the extra overhead.
Here's a citation that may interest you:
"Quantifying Behavioral Differences Between C and C++ Programs", by Calder, Grunwald and Zorn; it appeared in the _Journal of Programming Languages_, 2:4, 1994.
Re:Dumb poll (Score:2)
That's why I said in my original post what I use, not what the "real world" uses.
Poll was pathetically narrow in scope. (Score:2)
Re:Thoughts on Languages (Score:2)
Java too print something:
System.out.println("foo: " + 10 + " " + (true))
C to print something:
printf("foo: %i %b", 10, TRUE)
whaa? As a newbie I found C very cryptic and daunting. Java hides, for instance, nasty things like pointers, and is very developer friendly. C is good for small tight algorithms, libraries, etc. But anything to do with output or something complex enough to require an object model, C becomes a tangled mess.
Re:Thoughts on Languages (Score:2)
OTOH, the Java docs that I've seen didn't even bother to mention the endianness issue -- a bit of a bother considering that one has to know about it if you're not requiring that java be used at both ends. Turns out that it seemed to be big-endian on all platforms that I tried, a Good Thing.
C/C++ also aren't that bad if you're used to thinking abstractly. Then, pointers aren't a problem at all if you're not doing rampant dynamic memory allocation (especially in C++, with destructors, combined with class methods if you want to be truly evil and lazy)...
They don't know what they're missing...... (Score:3)
A visual development language for Win32. Uses Object Pascal for the core language. Native code compiler. It has the best IDE I've ever used, bar none. I've used a lot. Think of C++ power, VB-style visual development and an elegant programming language rolled into one, and you are somewhere close.
It supports DirectX, ActiveX, COM, CORBA, and virtually every bit of drag-and-drop database functionality you can think of. Special emphasis on internet functionality. Huge number of solid third-party components, though you can craft your own with the minimum of effort. I've even used it to write web server applications (ISAPI and CGI), for which there is a wizard included.
You don't have to touch the monstrosity that is MFC, because you get a great object-oriented component library (Borland's VCL). Delphi thrashes C/C++ on compilation time and matches both for execution speed. And yes, there is an inline assembler for all the keen hackers out there.
That any programmer worth their salt is voting for VB when Delphi is around totally baffles me. Seriously, I think that most people don't even realise that this tool exists.
Apologies for the language rant - but I really felt the need to shout about another fantastic bit of software largely sidelined by the Microsoft Monopoly Marketing Machine.
When Delphi finally arrives for Linux, I for one will be cheering very loudly indeed.....
The myth of "easy" programming languages. (Score:3)
That's the bone I have to pick against VB. It parallels the myth that a GUI makes a computer easy to use.
The problem, in both cases, is that an "easy" interface to the job makes it possible for unqualified personel to give the appearance of getting by. That's fine in some circumstances, but it doesn't address the world's software crisis. Arguably it makes the crisis worse.
I once worked in a shop that used VAX BASIC. Kinda low-brow, but nothing really wrong with it per se (after all, it all compiles down to machine code). But the problem was that it made management think "programming is easy", and we ended up with people on the team doing incredibly stupid things, despite the fact that they could easily write a line of code that would compile.
The problem is that "easy" syntax does not and can not change the difficulty of the underlying problem. It makes sense to use "easy" tools whenever they are available, but the unfortunate side effect is that society, or at least your PHB, begins to expect intrinsically difficult problems to automagically simplify themselves to conform to the lowered bar of the language you're trying to solve them in.
--
It's October 6th. Where's W2K? Over the horizon again, eh?
Re:Thoughts on Languages (Score:2)
Precompiler directives, that's another confusion. For machine indepence you're going to have to know about special defines for basic types, and also calling conventions (stdcall, etc.), all sorts of weird mangling phenomena, exports imports, linking, object files, etc...
Re:Poll here, poll there (Score:2)
VB, arguably, is a far cry from the original BASIC, with the latter's (GW, anyway...) 64KB limit and so forth.
Is it LISP, or [Common] Lisp?
Add:
ML (e.g. SML/NJ)
sh and/or csh
Smalltalk
Haskell
Machine language (any)
Re: Python (Score:3)
Possibly, but since Python is fully Open Source, maintainance of the language shouldn't be a problem. When push comes to shove, you can always find a way to fix the problem -- people can and do post public patches to the Python source to fix things they see as problems, such as better garbage collection, consistent return types from functions, etc. If anything, I'd be more worried about being tied to a proprietary language with a single company behind it. This applies for both good languages (Delphi), and not-so-good ones (VB). If the company goes out of business (Delphi again, sorry Borland), or arbitrarily breaks backwards compatibility (VB), you're screwed.
Also, Python the Language has been pretty stable for a few years now -- my copy of "Programming Python" is dated in 1996 and applies for Python 1.4. The current version is 1.52 and is mostly minor changes in the standard libraries. The major events for Python right now is how it is used, such as in Zope or JPython.
The real news. (Score:4)
Remember the persian chessboard problem*? Rate of growth is at least as important as amount.
* For the proverb impaired, a king promised a young man a reward of his choosing. The young man asked that the king take a chess board, put one grain of wheat on the first square, 2 on the second, 4 on the third, and so forth. The thing is that this ends up being:
As anyone with an alpha can tell you, 2^64 is a huge number. I heard somewhere that this number was quite a bit more than the annual grain yield for the whole world for any given century.Re:I don't get this at all. (Score:2)
I agree that C/C++ will probably never die (look at Cobol/Fortran), and I think Java will continue to grow huge on the server-side, especially servlets, given how easily they are developed and scale.
Quite different from 2 years ago (Score:2)
Re:Visual Basic, et al (Score:2)
Intriguing. Exactly what would these "major incompatibilities" be, then? There are some (veyr minor) changes between releases, but that's about it. Lots of new functionality, yes, but major incompatibilities, no.
That's not to say that Tcl is ideal for writing business apps. It's not. While it can be done (and I am doing so now, BTW), the language isn't great for large scale projects. Give me pointers, for fsck's sake! :-) Tcl is, however, very good at producing small utilities, and doing so very quickly. Shell have 1.5 million lines of Tcl running on one of their oil rigs, apparently, so it can be done. Speaking from experience though, if I was going there, I wouldn't be starting with Tcl...
Re:Java's in third? (Score:2)
We haven't run into that many platform problems, although the range of platforms we need to support is fairly limited. We are also mainly using it for applications and servlets, not for applets.
As for speed, for most things it has been adequate, although I am currently running into a few problems on one project. I am not sure its the Java code or the database (most of the CPU usage seems to be in the database).
Re:Thoughts on Languages (Score:2)
I am convinced, though, that Java would be far, far more universal had it been deployed better. It seems to me that Sun, in its zeal to shift the deployment pain from the client to the server, shifted pain that didn't need to exist in the first place.
What, did Sun fire every single one of it's UI guys? Or is there a presumption that developers can handle any nasty UI problems that are tossed at them? Might explain vi...;-)
[No, I'm not getting into a language war. This is beyond language.]
Yours Truly,
Dan Kaminsky
DoxPara Research
http://www.doxpara.com
Re:Visual Basic, et al (Score:2)
Then, you only have to look at the changelog - I've yet to see even a minor version of TCL that hasn't at least 3-4 calls listed as replaced and no longer working.
Java third? Naturally... (Score:3)
The learning curve on Java is a BITCH. Yeah, yeah, I know you're thinking "Bunk! Java's as easy as they come!"
Bull. Points of fact:
1) Java keeps changing. If they'd get down to standards already more people would use it. Look at Swing for crying out loud.. 1.1 to 1.2 was a whole radical annoying thing..
2) Java, being wholly OO, is a lot harder to learn for the person that has programmed C for twenty years. C is used WAY more out there in the real world than C++.. I learned the OO way. I have no problems. C++ is my language of choice, but everyone I work with just can't grasp it easily. It takes them a while. Java? Forget it, they don't even try! They don't try because:
3) It's a slow, clunky, badly designed, interpreted, overrated, security-overconcious, bug-riden piece of shit.
I have a program that I would consider to be something fairly easy to do, but it's in Java, thereby becoming extremely difficult. It has to be on the web, and that means java. CGI just ain't gonna work for this one. ActiveX can blow me.
The program basically connects to a Database over the network, and lets a user modify it. The mapping of inputs to tables is fairly one to one, so basically it's just a front end to the DB. Easy right? Hardly...
JDBC works maybe 75% of the time. Often it fails for no reason...
There's no standards in how JDBC connects across a network.. It all depends on the server you're running...
Come to think of it, there's no standards on Java between the two major browsers (both of which must work, yes, bloody m$). That means the simplest way is to use the Sun Java Plugin, adding one more thing that users must do for this POS to work right..
All the servers that support JDBC (This is on NT, not by my choice, mind) seem to suck terribly. Most of them crash a lot, few will run as a service, none are open-source and/or freeware...
Bloody annoying, that's what java is. You can't get around to programming any damn thing because you're too busy finding any way to get the stuff to make it work in the first place..
Sorry, I had to vent a bit....
---
Tunnel vision (Score:2)
A clue, folks. This was a poll, which means that it measures quantity.
Corporate America employs programmers in truly astounding quantities. These folks are known in the trade as Applications Programmers. They crank out huge amounts of code following the formal specifications provided by the company's Applications Analysts.
These days, the language of choice for Applications programming is VB. It used to be COBOL. (Anyone remember COBOL?)
Applications Programmers are, by and large, a breed apart from Slashdotters. That doesn't mean that they don't exist.
Re:Visual Basic, et al (Score:2)
More than a year? Oh, goodness! And I've been working with Java 1.2 since 1997. I make that a little more than 1 year.
BTW, talking of factual errors, 1.2 was renamed Java 2, at the time of final release, which was about a year ago.