Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
News

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.
This discussion has been archived. No new comments can be posted.

Zona Research Does Programming Language Poll

Comments Filter:
  • hey...whats the matter with green!

    :)
  • I would like to see the statistics combined with what the people actually do for a living and what architecture they do it on. Frankly, this seemed like an article to simply say Java isn't good enough and I can't agree more. Who really needs an extra "compatibility layer" between pc and user? Not I. Next, where was Perl? I'm sure more people use Perl then some of the other choices to solve day to day problems.
  • > Any good VB programmer avoids the data bound controls like the plauge.

    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".

  • Bloomberg has the bulk of its system written in Fortran. Especially, anything that has to do with their terminals and proprietary databases. their web site [bloomberg.com]
  • A bit off topic, but I thought the proverb impaired might enjoy the whole story.

    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.
  • Surely that's just a J(V)M QOI issue. If the implementation you (or your customers) are using is crap, bitch to you J(V)M vendor about it (or tell your customers to) until it gets fucking fixed.


    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 :)

  • You misunderstand. Walk into your local software store, and I bet you could count the apps written with VB on one hand. The reason VB is so highly ranked in this survey is because of in-house developers writing one off hacks (what else can you do in VB?). No one writes real applications that have any kind of long term maintenence requirements in VB.

    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.
  • by kafka ( 79081 )
    > massively parrallel computers. Also, using
    > 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.

  • This article is very against JAVA. Yet more FUD from the media. Please note that Zona got to choose the group of business developers. If they were using VB, they are Windows (probably Intel) platform. Responding to quotes in the article... "The Zona study found that, in the eyes of business developers, Java still has some significant shortcomings that Sun will need to address. Topping the list is performance speed, according to the 150 developers surveyed by Zona. Users have long complained about how slow Java applications run on the desktop." ...Is VB really faster? C, C++ can be, but VB? I wonder about this. The GUI I can see, because JAVA talks through its GUI (say AWT) to X or Windows, whereas VB can hit the Windows layer directly. "The other major concern among developers is the lack of a Java standard managed by an open-standards body. Currently, Sun is the arbiter of Java specifications and standards." ...And Microsoft is the arbiter of VB specifications and standards. "Other concerns include: Java's scalability, or the ability of Java applications to be expanded to keep pace with business growth, and migrating applications across all platforms." ...And VB, C and C++ also have a problem migrating applications across all platforms. At least JAVA makes an attempt to tackle the problem. VB is Windows only, and C, C++ don't have a defined GUI that is standard. ...And VB doesn't scale... It goes to NT and that's it. C and C++ scale... sort of. Threads, MP, etc are not defined (well... they are, POSIX, but that isn't part of the language... and try running POSIX threads on Visual C++ without add-in libraries!) What they are implying is that JAVA won't overtake VB until some problems are worked out -- speed, portability, scalability, and ownership of the specifications. For each of these points, JAVA has an answer, while VB doesn't even address the issue. Ratboy666
  • I'd rather new than malloc (which i can do anyway). C++ gives you both "under the hood" functionality, and the flexibility to change what goes on under the hood.
  • I think that we should all just whip out the code and measure it, and see who has the biggest swinging code.

    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.
  • But, of course! How DARE they step on your righteous foot and include a non-unix OS. After all, everyone knows that if you can't do it in a unix, it simply should not be done. Damn that decent graphic arts software on mac and windows platforms. Real elite d00dz use command line programs for graphics.

    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!
  • The poll's driven by legacy code, sure. That's a lagging indicator. If they want a leading indicator, look at programming language book sales.

    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.

  • by scrytch ( 9198 ) <chuck@myrealbox.com> on Wednesday October 27, 1999 @06:13AM (#1584222)
    > I'm sure VB is hot for business apps. But I can't say I care. What about real-world apps

    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.
  • That tools that could be used by a brain-dead monkey are better. Of course, 9 out of 10 MS developers are brain dead monkeys, too.

    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!

  • I think you miss the point. Obviously, the guys who wrote the Unreal engine aren't morons for using VB to write UnrealEd. They used the tools appropriate to the task at hand. I'm sure they didn't write *Unreal* in VB. VB is best at making front-ends (and since an editor like that is primarily made up of the interface, VB is the natural choice); for other tasks other languages are often better.

    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
  • How can you survey only 150 people and make a sweeping statement that VB is #1? Its absurd and should be totaly ignored because its statistically insignificant.

    There are millions of Developers out there and to only ask 150 is just plain stupid.
  • VB is easier to learn and debug than most other languages. When you create forms, you drag and drop controls to the form almost as if you where painting them on. Many big businesses use VB for that and other reasons.

    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?
  • 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!

  • VB is definitely up there on the shelf of
    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?


  • It would be interesting to see this same survey done in 5 years, 2 years, oh what the heck... 2 months.

    --
  • I love Java - really, I do. It's a wonderful language. But 3rd out of programming languages? I think I've seen one serious application that was written in Java (Shiva NetManager) and that was just a utility. I always thought people were avoiding Java because of speed/platform issues, but am I wrong? Is there a mass of Java programmers out there with an equally large collection of programs?

    -----------

    "You can't shake the Devil's hand and say you're only kidding."

  • All hail SuperMojo!
  • My, my, my... What a tempest in a teapot (er; coffee mug, that is ;-) we have here. Let's not forget that they sampled only 150 buisness developers for their survey. In my field, if you sampled 150 developers the #1 language would be: FORTRAN. Yup. FORTRAN. No other language has quite the support or the libraries to do full-up parallel and/or scientific programming on 'big iron' (Cray T3E) systems. As many other poster's have pointed out, VB is a good RAD tool (which, coincidentally, is probably what it was designed for). However, it is really only applicable when you are building front-ends for Windows stuff. Java is a great language to program in (read: fun) but, like C/C++ is kindof a big hammer when it comes to solving small, UI problems. Similarly, Perl is The World's Most Useful Language for textual applications, but not so good for graphical stuff. I guess my main point is that 35% of 150 people does not constitute a trend. These folks are a niche, just like supercomputing folks are in a different niche.
  • The only thing that needs to be moderated down are your trolls. Read the moderator's guidelines before writing such stuff. Moderation isn't about whether you agree or disagree, but whether the post contains a view which is provocative of thought. And, let's face it, the post has 9 replies and counting. I'd say I've provoked some thought, at the very least!

    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.

  • They probably wern't thinking very much when they
    defined "programmers" for the purposes of the
    poll :)
  • by Greyfox ( 87712 )
    Ten years from now some Visual Basic programmer will be writing a story about you comparing you to Mel. [tuxedo.org] It will probably go something like "Kitsune didn't approve of visual design tools. He didn't approve of GUIs either. ``If you can't pipe it on a command line,'' he asked, ``what good is it''..."
  • Where's Delphi????

    (FP?)

  • >I'm sorry but I can't agree on this. Object Pascal is far from being an elegant language.

    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.
  • Actually, TK on windows doesn't look half bad. The TK widgets end up looking like windows native controls. My boss is not yet aware that my last two apps (for internal use only) were entirely done in Python. All he knows is that they were developed quickly, they have a nice interface, and they do ungodly amounts of complicated data manipulation behind the scenes (most of my devel time was playing with the algorithms).
    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!
  • by ptomblin ( 1378 ) <ptomblin@xcski.com> on Wednesday October 27, 1999 @03:22AM (#1584244) Homepage Journal
    My favourite programming language depends on the problem to be solved.

    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.

  • Agreed. Most of the software in the local is Windows apps, _probably_ written in C++. A large majority of them are put together from COM components... so who knows what percentage (probably just in the UI) is actually VB.

    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.
  • Amen -- Python is a beautiful language that is powerful and flexible and (most importantly) eminently readable!

    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.

  • 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
  • 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. :-)

    Well.. then why don't they use Tcl/Tk or Python? ;)
  • A sample of 150 developers? How could that possibly be representative? Furthermore, what are the 41% of developers doing who aren't writing C/C++, Java, or vb? Hmm? This is an example of journalists (remember the dumb kids in college, who said "eww...." when you mentioned your cs/math major?) reporting on a story that actually is based on facts of minor significance. Apparently, statistics and addition are a little too difficult, or too easy to overlook.
  • A colleague of mine recently told me that I should learn VB, rahter than learning perl. After all, she reasoned, perl is "techy and old hat".

    *sigh*
  • Agreed.

    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.



  • by jd ( 1658 ) <imipak@yahoGINSBERGo.com minus poet> on Wednesday October 27, 1999 @03:29AM (#1584253) Homepage Journal
    I had to do an analysis of the different programming languages, both of their usefulness and their popularity, as part of a project for a former employer, so this is of interest to me.

    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.

  • Given the outcome of the NT vs Linux benchmarking a few months ago, who wants to start a betting pool on when it will be revealed that M$ bought this one too?
  • "Real programming" is not the be-all and end-all of programming. I've seen far too many "real programmers" whose heads are so "real far up their asses" that they write stuff that their users don't want or don't fit their needs. If you're way more interested in implementation technologies than serving the needs of your users, get a human-computer interaction specialist on your team! I'd much rather use a program by a competent VB programmer who knew want was needed and wroite a useful and usable program than the most hardcore C++ guru who cared more about how kewl his optimized Patricia tree algorithm was.

    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 .

  • by seanb ( 27295 )
    Also, using indentation to control block termination is a BAD idea. Out of curiosity, as a not-quite-rabid Pythoner, why do you believe this?
    I'm not looking for a holy war, I just would like more info on your point of view.
  • Specifically, MOO (Mud, Object Oriented).

    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.


  • Faster languages than C++ (at least, those I'm familiar enough with to say): C, Occam, LISP, FORTH, Fortran, Algol, Smalltalk, Perl.

    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.

  • The "Microsoft VM" is correct. Its kinda a cross between Java, DOS, and the toaster. Plus some unholy relics from another dimention. It sure as hell isn't a JVM.

    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

  • Blame gcc. On my Ultra 10 running 64-bit Solaris7, hello world compiled with DevStudio comes out to 6104 bytes, and with gcc comes out to 24,368 bytes. gcc compiling with any amount of optimizations shaved a whopping 16 bytes off the executable. DevStudio compiling with -xO5 -xspace brought it down to 1999 bytes.

    You get what you pay for.


  • I could imagine an extra tab causing problems in production python code, just as easily as the curly brace (if you deny the possiblity, you are fooling yourself), so I guess we are even. And that makes your argument just as pointless.

    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

  • Gah, I managed to screw up the name of the compiler every time. It's DevPro, not DevStudio. Suffice to say I prefer it to gcc every time, and thankfully so does autoconf.

  • Comment removed based on user account deletion
  • by CausticPuppy ( 82139 ) on Wednesday October 27, 1999 @07:22AM (#1584336)
    Those morons who wrote the Unreal engine obviously "don't have the skills to be a real developer" because they chose to write UnrealEd in VB. But that's another story.

    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?


  • I can build an aircraft from aluminum or wood or composite plastics -- the underlying principles of flight don't change, only the context in which those rules are expressed. The art is not in knowing how to make a wing, it's in knowing that for this type of flight and this propulsion system, I need to use this structure and material.

    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.
  • (no, you can't do if (a), where a is an boolean variable


    Uhh, yes you can.


    Go back to class, kid.

  • by Oestergaard ( 3005 ) on Wednesday October 27, 1999 @03:36AM (#1584349) Homepage
    Well, if you asked a group of embedded systems engineers what language they used for fine tuning time-critical sections in drivers, you would see that Visual Basic is not popular, while 90% of the developers seem to be using asm for their ``applications''.

    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.
  • by Rob the Roadie ( 2950 ) on Wednesday October 27, 1999 @03:36AM (#1584353) Homepage
    VB has been around for 8 years.
    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.
  • I thought that a version of the language was complete? (completely specified that is). Do you mean you think that current implementations of the J(V)M have a long way to go before being able to be classed as 'mature'?

    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....).
  • by voop ( 33465 ) on Wednesday October 27, 1999 @03:40AM (#1584368)
    I always thought people were avoiding Java because of speed/platform issues, but am I wrong? Is there a mass of Java programmers out there with an equally large collection of programs?

    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....
  • by joss ( 1346 )
    > Faster languages than C++ (at least, those I'm familiar enough with to say): C, Occam, LISP, FORTH, Fortran, Algol, Smalltalk, Perl.

    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.
  • by pvente ( 89848 ) on Wednesday October 27, 1999 @03:40AM (#1584375)

    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.

  • Let's take a look at this from a more abstract perspective.

    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.

  • What I'm saying is that I've seen plenty of production code (you'll have to take my word), and I've never seen curly braces cause trouble (have to take my word on that, also).

    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
  • 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.

    --

  • Folks complain about vb, and it's really a pretty horrid language, but the dev environment fills a very distinct and useful niche, which is what makes it so popular.

    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.

  • by Salamander ( 33735 ) <jeff@ p l . a t y p.us> on Wednesday October 27, 1999 @03:51AM (#1584408) Homepage Journal
    This comes as no surprise to me. The advantage VB has over other scripting languages is that it has a reasonable learning curve. People who would rather be focusing on something else can very quickly learn how to do simple stuff in VB, and as their skills improve the language still supports their new needs up to a fairly high semantic level. I know quite a few companies whose basic development methodology is to string OLE/COM/ActiveX components together with VB, and it actually works quite well for them.

    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:
    • The first issue is platforms. You'd think you could find a JVM on just about anything, but you'd be surprised. For example, even though an MS JVM exists Windows CE, the manufacturer of the particular device I own (a Sharp TriPad, same as a Vadem Clio) didn't see fit to make that available and I've had no luck finding one elsewhere. So much for Java on that platform.
    • Support for the latest version of Java is often lacking. Java 2.0 Platform is still pretty much a Windows/Solaris thing even after all this time. Admittedly, this is mostly a library issue, but as long as Sun makes it difficult for someone else to provide equivalent libraries this will remain an issue.
    • Lastly, while Java may be great for applets, some aspects of Java make it difficult to use for standalone applications of any complexity. In the real world, programmers often need to interface with in-house libraries. The fact that these interfaces are probably C-oriented is a minor issue. The major issue is that Java doesn't provide a decent way to interface to these libraries even if they were also in Java. Stupid.

    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?
  • This is sort of a non sequiter, but I have to post somewhere....

    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 /true/ platform independence...not only would Java be able to run on any platform, it would be able to be /ported/ natively to any platform, which is a boon for C and sometimes C++.
  • by Effugas ( 2378 ) on Wednesday October 27, 1999 @03:53AM (#1584417) Homepage
    I'm not surprised VB is so popular. Look how many Windows desktops there are out there, and look at how god-awful Visual C++ code is. VB has a pretty nice development environment, and is (apparently--I'm not a VB guy) great for quick and dirty Windows GUI apps.

    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 .EXE and a few random .DLL's that might have to be installed. C code compiles to executable files and some libraries that you probably already had anyway.

    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. ;-) So, yes, overall I'm still quite hopeful.

    Yours Truly,

    Dan Kaminsky
    DoxPara Research
    http://www.doxpara.com

  • "I thought that the HotSpot thing could only accelerate Server-side Java?"

    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.
  • I don't know what I was talking about, because that report doesn't even have a HotSpot benchmark on it. I'm pretty sure that HotSpot is only a bit behind IBM's VM, and probably getting much better. There were a ton of things they had left to implement after the 1.0 release of HotSpot.
  • Just because something is simple to use doesn't mean smart people shouldn't use it. Not to be a little out of line here but I use VB for 85% of my work and I have to say that as a language it isn't as bad as some would like to think it is. It has great object based charcteristics and its devotion to COM makes component creation a snap. What VB does is allow you to abstract away the GUI. A textbox is a textbox. Theers nothing magical about it anymore, and it shouldn't be teduious for us programmers to add one to an app we are creating. There isn't a tool out there that makes adding GUI elements easier than VB (save Delphi...which has a very VB'ish interface). Alot of Microsoft's success is directly related to the tools they provided for business programmers to get their jobs done. The other thing that makes VB attractive is the way it allows easy access to various databases. In literally 1 or 2 statements you can be connected to just about any relational datastore, assuming you have an ODBC driver for it. Data is the blood of the IT revolution. Easy access to that data is a big plus. What people don't realize about VB, is that it can be used to create very powerful software components using COM, or the Component Object Model. For the last several years I have been developing statistical COM components for use in various projects here at Educational Testing Service. Once created (if created with care) these suckers fit in everywhere....they can be used in ASP scripts in IIS, in a Word macro, and even a larget program written in C/C++. You can fault Microsoft for many things but you have to give them credit for consistency. Everything Microsoft does is centered on COM. They have focus. Imagine if there were a VB like tool for Linux. What a tool that would be. Unfortunately Linux can't agree on the guts behind their GUI's (will it be KDE's version of CORBA or will it be Gnome's self created version?). What major market vendor is going to gamble on the outcome of that horse race. So again I reiterate, just because something is simple to use doesn't mean smart people shouldn't use it.
  • by A Big Gnu Thrush ( 12795 ) on Wednesday October 27, 1999 @04:00AM (#1584441)
    You're absolutely right. VB may have still come out on top for "building business applications" but who did they ask? "Developers." That's a pretty big umbrella, and how was the question phrased? What were the other languages that made up the last 35%?
  • I think you're absolutely right. I'm relatively new to VB (1 year) but I've programmed in other languages before (Pascal, Java 1.0, and hell even Motorola 6800 machine code)

    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.


  • Despite Java's growing popularity, many big businesses just aren't ready to use it for their most important applications, the study said. For instance, business software developers still primarily reach for tried-and-tested tools, such as Microsoft's Visual Basic, along with C and C++ for building business applications, according to the study by Zona Research.

    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:

    • business in the larger sense (which would make this study more significant as virtually all software is written to satisfy the needs of some business)

    • business in the traditional sense (financial, spreadsheet, database - as in "I've just been to college and I got a business degree")

    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.

  • by Hard_Code ( 49548 ) on Wednesday October 27, 1999 @04:04AM (#1584451)
    We use Java here in the academic environment /extensively/. I work for the IT department of a large university (Cornell, 30,000 people), and our distributed infrastructure is being developed primarily with CORBA and Java, as are the new apps we're kicking out. Because of changing client-side API, specs, implementations, Java has been so far, a boon on the server side, but I think it's alive and kicking on the client too. JDK 1.3 is going to make it even better, with the incorporated HotSpot engine, which I've already seen to speed up client-side apps. I haven't seen the poll, but it's scary to think that many people have chosen Visual Basic as their favorite. I can understand if they are forced to use it...but personal favorite? Was it just MS lackeys and novice kiddies who think VB is the coolest thing?
  • I agree that VB is trashed a bit overmuch and so does Linus, judging by this quote from recent interview [linuxjournal.com]:

    "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.
  • ...thread scheduling, for some reason, is in the Java language specification specified to be left unspecified.

    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.

    --

  • by Blackjax ( 98754 ) on Wednesday October 27, 1999 @04:14AM (#1584462)
    It is not really a question of 'Is Java being used?' it is a question of 'Where is Java being used?'. You are right in that there are not a huge number of end user Gui Java apps out there supplanting native versions of software. Cross platform issues and past problems with the languages architecture & speed (which have since mostly been corrected) kept this from happening. However there are areas where Java is very well suited to the tasking and is rapidly taking over. The article mentioned one area but only caught the tip of the iceberg. Middleware. Java is rapidly taking over the middleware arena. This is an area which is not very visible to the average person but is a huge market with a lot of developers. Another place Java is really catching on is the server side of the web. How many of the dynamic pages you see were generated by a servlet, and if they were could you tell?

    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.


  • *shrug*

    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.
  • 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

  • Damn, that's funny. WTF are you talking about ?
    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.
  • You'll need an 'other' entry as well, as I don't see Objective C in your list, and I'm sure there are many others out there ...


    Chris Wareham
  • Have you seen XForms? It's strictly X, making it not completely portable, but...

    ...it allows a C programmer to graphically layout a simple GUI, specifying callback functions and arguments. It then generates headers and .c such that your application can start the GUI quite easily.

    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.
  • OO-style programs behave in fundamentally different ways. Their memory allocation patterns tend to involve smaller but far more numerous chunks; their function calls are more frequent, with shorter methods; and if you use multiple inheritance, then you're doing more memory lookups for vtbl foo. Therefore, you find somewhat more instruction cache misses and so forth; and with more frequent function calls, you find things like a greater number of cycles devoted to things like save/restore.

    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.
  • I guess it depends on your definition of "real world". I've been programming in the "real world" for 17 years (not counting my university co-op work placements), and I have yet to write a single line of code that will run only on Microsoft platforms. I've done FORTRAN on mainframes, about a dozen varieties of Unix using C, C++ and perl, and for the past two years I've been writing Java code on Linux that gets released on Windows and Solaris.

    That's why I said in my original post what I use, not what the "real world" uses.
  • If you look at the number of people in "business" computing who are not paid to be full time programmers, yet who can assemble a database-oriented "Application" from parts with Visual Basic and some ActiveX controls, you're stretching the definition of programmer. How many people have "Software Developer" or equivalent on their business card and yet only know Visual basic? I hope that number is somehwat lower. I hope that it's not the language of choice for the average B.Sc. Computer Science graduate. I'm often reminded of an old axiom in computer science: When all you have is a hammer, everything looks like a nail. In other words, the surveyor started out to find the answer to the question they already knew: Does Visual Basic meet the needs of the people who use it? Yes. he/she/they surveyed exactly the right kind of people to find out if Visual Basic was still relevant to the small custom database oriented application building thing. My other problem with this is that a sample size of 150 people is laughable when they pretend they are answering the question "Is Java a failure?". Hmm. Does Java have a target niche now? Yes. So why not go and look at it's penetration in that niche. It's not news that Java hasn't replaced every other language for every purpose. Neither has PERL, C, C++ or Visual Basic. Welcome to reality. I'd like to know what the over 3,000,000,000 people who spend all or some of their time developing software think. I'd like that survey broken down according to whether or not programming is their primary job function, and ask them if their choice is dictated by job description or the "shop" you work at, or if you are off in a corner like embedded systems, etc. The number of languages that people say they know and have written software with would be interesting as well. Some interesting statistics could be calculated. For example, if 50% of people who know both Delphi and Visual Basic still choose Visual Basic for most projects, I think Inprise/Borland would sit up and take note of it.
  • I'd have to differ on the statement that Java is more daunting or difficult than C to the newbie. The Java VM hides tons of stuff the newbie doesn't have to care about.

    Java too print something:
    System.out.println("foo: " + 10 + " " + (true))

    C to print something:
    printf("foo: %i %b", 10, TRUE) // something like that right?

    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.
  • I agree that the types can cause problems. For a lot of my code, I've got my own typedef.h that aliases things like int32 to types native to that machine. Why? Because I'm reading/writing binary data to network storage, accessible to different platforms, as well as transferring it over the network, and it *really* matters that I know what size data I'm using. That, plus the endianness (the convention being to use big-endian on disk or wire...).

    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)...
  • by mikera ( 98932 ) on Wednesday October 27, 1999 @05:09AM (#1584498) Homepage Journal
    Borland Delphi:

    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.....
  • by Black Parrot ( 19622 ) on Wednesday October 27, 1999 @05:10AM (#1584499)
    > The reason you don't have to hire top-notch talent to program in VB is that it makes it easy to write mediocre-to-awful code.

    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?
  • Other exmaples amongst many:

    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...
  • *Which* assembly language? A MIPS dialect? Alpha? x86? PPC? etc.

    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)
  • by Alan Daniels ( 1667 ) on Wednesday October 27, 1999 @04:46AM (#1584505) Homepage
    >Python only has one maintainer, last time I looked, which would give most industrial developers the jitters.

    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.
  • by Amphigory ( 2375 ) on Wednesday October 27, 1999 @05:13AM (#1584507) Homepage
    The real news is that java has almost doubled its use in the past 6 months! From 5 percent to 9 percent! I can't believe that they are spinning this as "Java is still in trouble" when it's growin at 400%/year!

    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:

    2^64 + 2^63 + 2^62 ... + 2 = a whole lot of grain.
    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.

  • I wouldn't grapple with the problem of "not getting the poll"... they don't give much in terms of the poll from a bird's eye view. Who did they poll? Were they young, old? Do they have educations? Did they only poll developers at Microsoft partner companies? We just don't know (at least at 7am I couldn't find any links with any poll info/background).

    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.

  • In 1997 when another language poll was posted on /. the results were highly in favor of Java. In 1997 Java was going to save the world. Corel had ported WordPerfect to Java. Web browsers were being written in Java. Well now it looks like they're emphasizing Visual Basic. Basic seems to have taken over the world in 1999. As for C++, since when did efficiency in the workplace outweigh credentials and business suits?
  • Tcl/Tk also suffers from the lack of a solid API, with each new release having some major incompatibilities.

    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...

  • The company I work for is using Java and making pretty strong commitments to it in the future. However, what we do is in-house development and very specialized, so you won't see it unless you work for us.

    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).

  • C is much, much easier to hack on than to code from scratch. I know, I'm a much better code hacker than a coder.

    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

  • NV is a typical TCL/TK application. It won't run on any Tcl 4.x or 8.x variations, because it's almost entirely built of calls that have been entirely replaced. It would be next to impossible to port to a recent version TCL and would require a complete re-write to get it to work. This is a bit more extensive han "minor" changes between releases. :)

    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.

  • by Otto ( 17870 ) on Wednesday October 27, 1999 @05:37AM (#1584537) Homepage Journal
    And here's why: Learning curve.

    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....
    ---
  • Looking over the comments here, I guess most Slashdotters figure that if you aren't coding Open Source projects, you aren't a programmer.

    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.

  • No, I used Emacs and Sun's own Java compilers, hot off the press from their Sun Developer's area. I was usually working with a new release within 2-3 hours of a new release being posted, either of the Swing set, or of Sun's Java compiler.

    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.

Always draw your curves, then plot your reading.

Working...