Zona Research Does Programming Language Poll
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.
hey...whats the matter with green!
:)
I'm still working on a clever footer.
That explains the sorry state the software engineering industry is in.
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.
I'm tired of reading all of this bullshit about "real programmers". I code full time and pay my bills with coding. I am a "REAL PROGRAMMER". Students are not "real prorgammers" because they just putz around in school. Wannabe geeks working at help desks are not "real programmers". A "real prorgammer" is somebody who does it day in and day out, 40 hours a week. Period. I'm a full time VB prorgammer, and quite proud of it.
> 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".
My Karma: ran over your Dogma
StrawberryFrog
Of course VB is the most used language. Actually the most common one is probably still COBOL, but those maintenance programmers out there don't want to admit that they're using it. VB has a very gentle learning curve, there's a tremendous amount of learning material out there for VBers, and MS markets the hell out of it. A lot of the self taught VB people couldn't program their way out cardboard box if you wet it and poked holes in it, but they can get up to a level of moderate productivity very quickly. I work at a MS partner company. That's not to say I take everything they dish out and recite it as gospel -- it only means there was someone out there who wanted to give me money to develop programs. VB has its bugs. I do a lot of work in it, and I'm pretty good at working around them. It's a kludgy, awkward, buggy and inconsistent language. A lot of things feel like they were imlemented piecemeal and never really designed. It's also not terribly fast and distributing it requires you to distribute a hell of a lot of stuff, even for a Hello World app. The strength of VB is that I can take 5 junior programmers, give them a design, some coding standards and guidance, and crank out a pretty good app in half (or less) of the time it takes to do it in C++. What's more, a junior C or C++ programmer costs a lot more than a VB programmer and is *much* harder to find. VB puts many projects in reach of a departmental budget that could never afford to do it in C. Is it is good a system as the one that could have been done in C? Well, C could have produced a better app but the department wouldn't have been able to afford it. Bummer. This ease of development is why VB is popular. Delphi should have this role, since it's far superior to VB, in virtually every way. Unfortunately, MS saw this and (for the most part) crushed Borland. This is why, IMHO, Borland porting Delphi to Linux is one of the biggest developments that will spur its acceptance. Who really cares about how much the OS costs??? The real expense is the cost of developing and maintaining the apps that run on it, and customizing the apps that are purchased. This is also the strength of open source. VB is slow? Bloated? Sure it is. I don't think there's any compiler optimization. Nasty, nasty, nasty! But at the same time, hardware is cheap and fast these days. Buggy? Yup. Sucks don't it? Check out http://www.vb-zone.com/upload/free/features/vbpj/1 999/mckinney/mckinney1.asp. This guy was in the languages group at MS for a long time. Well, I've ranted enough. :-)
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
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.
You will not drink with us, but you would taste our steel? - Walter Matthau, The Pirates
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 has a great series of articles 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.
> 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
Just another "Cubible(sic) Joe" 2 17 3061
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 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.
Agreed. This guy should stick to his training wheel programming languag(VB) and save his analysis of c++ for another VB programmer who might actually believe it.
> 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.
I've finally had it: until slashdot gets article moderation, I am not coming back.
If a programming language (or any tool, for that matter) is frustrating to use, you are probably not applying it correctly. When you are building with nails, don't use a screwdriver and expect things to go smoothly.
Programming languages are nothing more than tools. As such, different languages are designed to facilitate the solutions to different programming problems. Just as you wouldn't use a screwdriver to drive a nail, you shouldn't use VB to implement a high-volume, enterprise-wide transaction processing system. However, it is ideal for developing user interfaces and front ends for such hardcore backend processing systems.
People who insist that one tool is better than other tools either (1) only solve one type of problem or (2) are not professional enough to learn to write good software using more than one tool.
Scott Swanson
sswanson@home.net
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'm trying to teach myself to set people on fire with my mind... Is it hot in here?
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.
Visit the Arcade Restoration Workshop @ http://www.arcaderestoration.com
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?
COBOL???
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?
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 would be interesting to see this same survey done in 5 years, 2 years, oh what the heck... 2 months.
--
My office has been taken over by iPod people.
I invoke Godwin's law and mention Lisp on a thread about programming languages...
Seriously LISP is living (or maybe dying...) proof that multiparadigm programming works. It's the static languages that are all messed up. LISP was designed to be an evolving language. It has incorporated functional programming, logic programming, more dynamic OO than Java and imperative programming in one language and very cleanly compared to, for instance, C++. Go ahead, just invent a new paradigm and LISP will assimilate it as well. Resistance is futile.
AC-----------
"You can't shake the Devil's hand and say you're only kidding."
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.
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.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
They probably wern't thinking very much when they :)
defined "programmers" for the purposes of the
poll
For every problem, there is at least one solution that is simple, neat, and wrong.
You guys/gals should check out REBOL at: http://www.rebol.com Written by the key architect of the AmigaOS. It's small, fast, easy to learn and growing.
Ten years from now some Visual Basic programmer will be writing a story about you comparing you to Mel. 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''..."
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
(FP?)
Use The Source, Luke!
>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.
My Karma: ran over your Dogma
StrawberryFrog
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!
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.
The next Cmdr Taco duplicate will be ready soon, but subscribers can beat the rush and see it early!
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 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
"And we all know what the 'B' in 'BASIC' stands for!" -- Mike
"uuhhhhh... biznitch?" -- Tony
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.
I'm still working on a clever footer.
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.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
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?
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.
>I'll be happy to tell you how to improve performance.
:)
Could you share some of your tidbits, please?
Very good points. I did an internship at Motorola once doing various programming duties in one of their factories. One of the systems we wrote had to 1:) work on *old* macs (Mac SEs) 2:) interface to the main defect database. What was the solution? A combination of a C program and shell scripts (awk and sed) on the unix/database side and a *Hypercard* application on the Mac side. We had Hypercard modules to interface with laser scanners and the mac had touch screens. This system worked wonderfully. This whole thing about 'real world' programs is stupid. *every* program is a 'real world' one because the developer (or developers) is using tools at hand to get a job done...in the real world. Man I get sick of the whole academic/theoretic look at things all the time.
My blog: http://jkratz.dyndns.org/~jason/blog/
VB is great for applications that are simple, non-computationally intensive, non-distributed, non-real time, non-mission critical, non-etc. etc. etc...
VB is only applicable to a small subset of problems. However, that small subset of problems generates the greatest need for developers. Let's face it, most developers aren't doing anything particularly interesting or challenging. Most programming tasks in the business world are quick, dirty, short and simple. They don't require a lot of analysis, modeling, design work, integration, testing, or documentation.
Are these "real" applications? Yes, but they're not particularly difficult or interesting, which is why they are well suited to VB. Let's face it, VB is intended to allow people who don't know much about computer science or software engineering to handle the majority of programming tasks in the business world. That frees up the people with more education and training to tackle the more interesting problems with other languages.
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.
I've finally had it: until slashdot gets article moderation, I am not coming back.
I think software ag has a working version of VB on Linux/Solaris/others. Its available for free download.
VB is a tool that helps me to solve business. I get paid, like most developers, to solve BUSINESS not SYSTEM problems. VB hides many system complexities thus allowing me to produce a solution faster. I am very experienced and could produce exactly the same apps using VC++, but VB coding and maintenance is an order of magnitude quicker. The guts of VB incorporate the efforts of many C++ programmers so that I never have to duplicate their efforts (strings, array boundaries, instancing/using COM, pointers, etc). So, yes, given the choice I would rather program VB 8+ hours a day producing solutions to new business problems rather than wrestling with C++ to solve old systems/programming problems.
Minimal EXE would not let you tell 'truly compiled' from 'pseudocode+interpreted' approach: runtime may weigh too much. This is the case if you use Delphi: all that mechanics to load forms, etc takes a couple of hundreds of kilobytes (unless you don't use anything Delphi is designed for, that is, RAD features). But it's not of importance, since exe size grows slowly as code is added. Good pseudocode + good interpreter for it can de pretty fast, at least, for a GUI frontend :-) VB has disadvantages more important than the performance, IMHO... But it's a good glue if you have something to glue :-)
Computers make very fast, very accurate mistakes
They have later stated that they regretted using VB for UnrealED, and started to rewrite it in C++. I don't know which version will appear with UT.
The fact is that despite his inexperience, Linus was right and Tanenbaum was wrong. Also, the fact is that Linux surpassed the functionality of Minix after only about a year of work primarily by one person (compared to Minix which took years by a bunch of grad students). Those facts alone establish that Linus with his 2-3 years of experience was the superior mind to Tanenbaum with his many books.
One thing that I've learned is that in the computer software industry, experience usually counts for jack shit. Similarly, most of the academics in the field are detached from all of the real innovation going on.
I'll agree that Linus has a massive ego. Wouldn't you have one if you were in his shoes? At least he isn't pretentious. Also, he has very rarely been wrong (so far).
And don't forget...
forth
simula
RPG
(and if you're splitting out goofy variants)
snobol
ratfor
VB and C++ both use the same compiler. If you write robust C++ code that:
1) uses STL or CString strings
2) checks array boundaries
3) safely checks math operations
4) verifies pointers
...your C++ code will (suprise!) run at the same speed as VB. You can write code that ignores these precautions, but then you are trading reliability for speeed. If prefer to let VB do all of this work for me.
I agree that if the underlying problem is difficult, then a language like VB doesn't make it any easier to solve.
However, most of the problems out in the business world are relatively easy. VB is an enabling technology. It gives people who don't have the education or training to solve the difficult problems a way to work on the easy ones in an easy language.
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.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
Hehe...
Seriously, though, the current implementations may not be great in general, but that's not due to the language. Did you read the article a while back that mentioned that Sun's JDK 1.3b1 has beaten C in some speed tests? (Not C++. C.) Encouraging news.
Relax about Java performance. It's not honestly all that bad, and it's getting a lot better all the time.
-jacob
Having profitably worked exclusively in Java since early 1997, I beg to differ with your impression of it.
First of all, Java comprises a whole spectrum of technologies, from a processor specification to a programming language. We shipped products written for the Java processor specification largely written in Java assembler, for example. The project is very ambitious, and thus results in some of the problems you see with Java technologies. When people change their focus from "language" to "platform" then Java makes much more sense. We ship the same code running without changes on anything from Palm V to HP/UX mainframes.
(As a small aside, Microsoft's marketing continually hammers the "Java is a language" mantra among corporate types in an effort to lock them in NT/Visual tools/DCOM/etc. I've been to many of those meetings at several companies worldwide, playing Java's advocate. I wouldn't be surprised if this study was paid by Microsoft to position Java at the same level as VB with some disadvantages, not as an alternative platform to Windows)
2) Java, being wholly OO, is a lot harder to learn for the person that has programmed C for twenty years.
Java is far from being "wholly OO". The language suffers from the same problems that C++ has in the OO department, just far less. Both Java and C++ are hybrid programming languages; the inclusion of stoopid primitive types in high-level object definitions is a no-no. Granted, Java is more OO than C++ because it enforces the paradigm far better, but it's far from "wholly OO." You should use Smalltalk for wholly OO.
3) It's a slow, clunky, badly designed, interpreted, overrated, security-conscious, bug-ridden piece of shit.
One at a time. Slow: Yes, in general is slower than executable code but not slower than PERL once the JVM and needed classes are in memory. I'll be happy to tell you how to improve performance. Clunky: C++ is a lot clunkier. At least Java enforces one programming paradigm (for the record I've written a C++ compiler and I programmed in C++ for many years, probably since before most of you even knew what C++ was). Badly designed: That's just flamebait. Interpreted: Hm... define interpreted. P-code running on a VM hardly qualifies as interpreted. Scripted languages are interpreted; Java is not such. Again, go to Java assembler if you don't believe this. Overrated: Er, I'd say overhyped. Security-conscious: At least there is a security model associated with the class library. C++ still doesn't have a standard class library (don't moan about STL; templates are a bandaid on poor design. C++ should've had a class library out of the gate. Dr. Stroustrup knew better), much less a security model associated with it. Bug-ridden: Depends on the implementation.
JDBC problems usually have to do with the database vendors, not with Java. Vendors must write the driver managers for JDBC, which only acts as a conduit for moving result sets between the Java address space and the database. If JDBC is failing for "no reason" then it's either your application or your driver manager, not JDBC itself. As for Java running on NT -- NT sucks, regardless of whether it runs Java, C++, C, or BASIC code! I'll be happy to assist in troubleshooting your Java application. Drop me a note.
Cheers!
Ehttp://eugeneciurana.com | http://ciurana.eu
This survey seems to be geared to client-side business applications.
I can almost guarantee you that there are more *new* COBOL applications being written today on the server than other languages. (Primarily for Y2K, but even for new apps. CICS+COBOL is proven, it scales, even if it can be monotonous.)
-Stu
printf() is a huge function; did you link statically? Did you strip debugging info from your executable? I get it down to 2900 bytes (dynamically linked PowerPC ELF bin) with GCC 2.95.1.
sterwill@zappa [~] cat foo.c
int main(int c, char ** v) { printf("Hello World!\n"); }
sterwill@zappa [~] gcc -o foo foo.c
sterwill@zappa [~] strip foo
sterwill@zappa [~] ls -l foo
-rwxrwx--- 1 sterwill sterwill 2900 Oct 27 10:33 foo*
sterwill@zappa [~]
--
The researchers only polled 150 people.
Now, it's been a long time since I took a statistics course, but I seem to remember that you would need many more participants to get a statistically valid result.
"Hey, I asked 3 people what their favorite color is. 66% said it was blue. Blue is the greatest color! Blue is much more popular than green!
*sigh*
I love thinking in LISP. But I can't see how a LISP program could be faster than C.
MSK
If VB has one thing going for it, it is ease of use. Having hardly paid any attention in class for the last two years of my HS Computer Science class, I have been able to get by (with a 95% or so) mainly by reading the help files. Obviously, efficiency isn't a forte, but that doesn't seem to be important in North American culture (ie: SUVs, Windows, etc.)
As for Java, I can only speak for what I know, but it seems to be getting some attention at the university level. A local university teaches nothing but Java for 1st-year Computer Science students. Perhaps the exposure is gaining it popularity.
On my Linux box, that lil' C prog yields a 4,463 byte executable. If I strip the symbols, it's only 2,724 bytes.
Java is an utter pain, in comparison to C. My school seems to prefer it for its more advanced programming topic courses for some reason (C++ is taught in the first 2 courses). System.out.println() to print text? What idiot thought of that? And don't get me into text input, especially on threaded apps, or, even worse, conversion between different variable types (eeek! its a different method for each conversion!). Combine this with a complete and utter lack of typecasting (no, you can't do if (a), where a is an boolean variable (or other type), you have to do if (a==true) (and it just gets worse from there... much worse)
Why anyone would prefer java is beyond me, unless you really *like* slowdowns and writing 3 times as much code.
Use straight C. No ++. No visual. Just C.
Objects are slow, and a pointless method to do programming on all things that don't have an inherent, "physical-object" nature, such as a windowing environment. As a general rule, arrays and structs produce far more efficient code and add to clarity by not hiding what is running which function, in addition to giving the programmer a much better grasp of the actual state of the system (what instructions are being executed, and especially, what the memory looks like).
This and many other reasons is why, for most tasks, I prefer to use C. I've never used Perl, but I've used Scheme which is similar (I'm writing a scheme interperiter in scheme) and while it is a nice language for theory, its forced "make everything recursive" is unnatural for most tasks, and a performance drag. Java... well, unless being able to run your program on every platform in existance is extremely important to you, don't bother.
And use VB if you're too lazy to learn how to program for real - you don't even get the "every platform" option Java claims.
Naturally, these are just my opinions.
- Rei
C++ can get pretty slow in certain circumstances. For instance, let's say your application has a highly entangled class structure (lots of associations between classes) and the classes are all defined in different compilation units. Then you will have tons of remote vtable lookups all throughout the code, causing really poor cache efficiency and potentially a lot page thrashing when memory is tight. C++ can be fast, but subtle things have a big effect on code efficiency. In my experience, FORTRAN and C are equally fast on most platforms. However, FORTRAN math libraries are usually more optimized.
"experience usually counts for jack shit"
You just invalidated your whole comment right
there. Have any idea how stupid this sounds?
You are confusing "functional" with "imperative". They are very different things, although I have heard of function oriented VB programming dubbed functional by spaced-out VB programmers).
C and C++ are *both imperative languages*. There is basically *no* translation between the OO and imperative "paradigms". There is not very much difference in the compilers for both languages except in the frontends. It's all syntax, and beyond that, it's pretty easy to determine what the compiler will generate.
The same is not true of functional languages (real functional languages, not C++!). Your point about it being impossible to tell what a given construct will compile to is much more true of a real functional language that of C++. In C++, it's just function pointers and compiler tricks. There is not a whole lot the processor can do to speed it up (no more, at least, than C). On the other hand, functional languages have much more room for optimization by the compiler than does C++ (and conceivably, more room for the hardware, in the form of multiprocessors and other tricks).
Here's a guide for you:
Imperative languages:
C (procedural)
C++ (object-oriented)
Declarative languages:
Haskell (functional)
Mercury (logic)
Even if you are just using your own terms for the same things, it helps you use standard terms so that people know what the hell you are talking about.
P.
I use VB for a significant amount of my work, most of which consists of connecting to some form of database backend. I find COM to be a very useful model to work with.
Using VB I can build a small DLL to do any processing I need in no time at all. If performance is really important, I can do it in VC++ as well..., or any other lanuage that can create COM DLL's. I build a couple stored procedures for that DLL to work with in the database, and put together a GUI in no time with VB. The GUI calls the DLL, which calls the database. Instant 2-tier application. Depending on the backend (anything from MS Access ugh..., to SQL Server on NT or Oracle on linux, or a giant mainframe..., whatever), can support a damned lot of users. Drop another NT box in with MTS, change 1 config setting on the client, and it's a 3-tier app. Add another NT box with IIS, make a couple calls to that DLL from ASP, and now you have a WWW interface to your data. The ASP code would be almost the same as the GUI, almost no development time. I don't know of any other languages that can do that as quickly.
Now I admit that VB is severly limited for a lot of things, and that there are most definatly places where it shouldn't be used. The moment you get very far into the Win32 API, things start to get ugly, especially if you ever have to deal with pointers. It can be done, but yer better off moving to a C++ app, or at least a C++ DLL to call from the VB GUI.
The other great thing about VB, is that it is pretty much the standard for anything on windows. It's a programming language with VB, a scripting language in MS Office and other apps, as well as a web scripting language. It's the language to script the OS to do stuff (WSH, though it can also use other languages if they have COM objects to parse them) If you know VB, you can automate any MS windows app there is, as well as a lot of other windows apps, there are a LOT of other companies that have licensed VBA to use as their scripting languages.
Anyways..., I look forward to the day I can use VB under linux, and await the flames I forsee I will get for posting pro-MS stuff here. I don't like MS, but that doesn't mean they don't have some good products.
--- Take out the spam to e-mail me.
Something doesn't smell right with these statistics. The artical is too vauge on a lot of needed points. What types of companies were polled? What platforms to the develop on? What type of software do they write - internal, shareware, commercial, web, ...? Who sponsored the poll? What are their geographical locations?
I am biases myself, but it looks like the poll started in favor of Microsoft development tools. If you ask ANYone I know, they would say for the Windows platform, Visual C, Delphi, and last Java. *nix is another story.
Let me explain why. If I look on my Windows computer, most of the software is commercial. I have Netscape, MS Office, Seti@home, Easy CD Extractor, Norton Antivirus, etc... All of the above is written in Visual C except for one, Easy CD Extractor is Delphi. I have other software written in Visual C others written in Delphi, but I can't say the same for Visual Basic. I have zero programs running on my computer using Visual Basic.
But I am biased.
Ozwald
INTERCAL was robbed, dammit!
How is Sun supposed to compile to an exe and dlls when one of the whole points of java is binary compatibility between platforms? Also, there are options out there (Visual Cafe on Windows one example) that let you compile native executables.
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.
Then use a development environment. There are tons available including NetBeans.
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!
I can't speak to JDK on other platforms besides Windows. On Windows 1.2 JDK none of these are issues. CLASSPATH is irrelevant. javac your application to compile it then java it to run it. It couldnt be any easier.
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.
JAR is the java standard. CAB is a Windows standard. Youd be hard-pressed to use CAB files with java on a Mac.
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.
And exactly who is this affecting? Blackdown is working on 1.2 for Linux and IBM has a kick ass 1.1.8 VM for Linux.
Java came out of the gate hard to install, harder to deploy, slow to load, and slower to run.
Quite true.
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.
No...J++ and the MS VM made things worse. The core usability of Java with a *proper tool* is just fine. How usable do you think VB would be without its GUI builder?
My blog: http://jkratz.dyndns.org/~jason/blog/
"But we can not have a poll with one hundred options. Or perheaps we can, Rob? "
/.ers!
Not a tradional one selection poll I presume! lol
"Second, I realize that there is no reason for this poll; each of these language categories has its application area. The important thing is which language inside each group you select, not which group, because that depends more on what you are going to write than on your personal preferences. "
We've already bombard with biased polls from Inprise/Borland and Zona Research, I think that it would be interesting to see the biases of all these opionated
Someone asked me, and I responded with *my opinion*!! Then you, under the title "Python indentation FUD" (what stake do you have in python's success, exactly?), proceed to tell me I am wrong, and label me a "Real Men C programmer" who is scared of such syntax. Where exactly does fear come in? Not fear, irritation, which I did experience at first! Irritation that could have been avoided was this feature not there.
I guess I should have mentioned that, yes, I am a C programmer. And that, yes, I have used python, and no, the "funny" syntax did not prevent me from using it, and yes, apart from that quibble, it's a pretty nice language & system. Yes, I should have qualified it like this, so that the (incredibly) insecure python programmers would not get so incensed!
To be fair, I have never seen optional braces cause problems in production C or C++ code. 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.
I guess python is perfect then. Thanks for enlightening me, and I will be careful to never have an opinion again.
I also suppose now is a bad time to bring up python's lack of typing. While I have not used python extensively, in other such languages that feature has costed me *hours* of time across multiple occasions, due to simple typos or whatnot, and that could have been avoided could I have specified the type of variable.
Peter.
ps. yes, vb has the same whitespace funnyness, but vb is much more broken than python is, in many other ways. Which means I will happily use python before I use vb.
I give in :)
Common Lisp has a fascinating way of doing OOP. And very dynamic.
Maybe it does prove that only the worst languages survive after all (witness VB 8^)
This is so compiler dependent as to really be meaningless, especially since both have their own library DLLs.
Anyway, I can tell you are running VC++ 6.0, as I got the same results. However, simply selecting "Multithreaded DLL", essentially telling C++ to use the C library DLL instead of statically linking to it, brings the executable size down to 16kb. I suspect that VB simply doesn't give you this choice.
But again, this is really all meaningless as it is all compiler dependent. I remember a time when most compilers could produce real, useful executables under 16kb. Does this mean that vendors now suck? Well, not in and of itself, because being able to produce small executables means just so much less today.
The cake is a pie
Ever notice how many good programmers/software engineers are or were also muscians (I looked at your web page)?
:)
Don't forget us hardware folks (I played trumpet)
-Stradivarius
How about a Slashdot Poll?
Question: What is your primary language for programming (Choose One)?
[x] Perl
[x] Python
[x] Java
Java might come in number one!
--
IIO
-- Weiqi Gao weiqigao@speakeasy.net
Interns and co-op students are constantly forced to use VB for all kinds of tasks, including tasks that are incredibly tedious using VB. Visual Basic has become the tools of choice for many professions (including engineering, finance, etc..) A big problem many businesses face is the fact that students with VB training are a dime a dozen. You'll be able to find C\C++ programmers that can code in VB quickly. However, finding people that can go the other way is more difficult. The cost of employing/training people to become proficient in C/C++/Java is greatly outweighted by the result in many cases.
You don't have a very good chance of getting all of your clients to ditch windows in order to switch to Linux. Your probably right. Even if the alternative is better, they won't do it... They, like so many people are affraid of change. But there is something you can do! PERL! Ditch your old dos sessions and switch to perl. Setup a MySQL engine and apache+mod_perl at each client site and rewrite your app in pure perl... Don't even use the apache api, just straight cgi perl with apache::register... It will be smooth, fast, and stable! What are your waiting for? You should be hacking out some perl code right now! ;) Later - and good Luck
Funny you mention that, because there are quite a few musicians in my IT department. Strangely, they seem to mostly be on the support side. That's where I started out at my company though, over there on hardware/software/network support.
:)
Now here's a little philosophy for you: programming languages aren't meant for computers, they are simply a tool to express an abstraction of logical human thought, which are converted into itty bitty simple steps for the CPU to process (op codes!) Just think, no matter how elegant your code is, it's all reduced to a bunch of reading and writing to registers, shifting bits, etc. Cool.
Naturally, having a firm understanding of the language is a requirement, along with all the language-independent programming techniques.
I like composing music (everything from industrial to 3 part fugues) for the same reasons I like programming-- the mental exercise. I moved away from support because it felt like I was just fixing wrong notes all day, with whiny orchestra members (end users).
I think the strong correlation you refer to arises from the fact that maybe programming and musicality come from the same parts of the brain? Just my theory, for which I have no supporting evidence
-CausticPuppy "Of all the people I know, you're certainly one of them." -Somebody I don't know
The VB dummies get a little self esteem boost out of all this. What's wrong with that?
They deserve our pity and emotional support, not to be cut down.
;)
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
I want to be a programmer, but I don't want to be, like, all "techy" and everything. 8-P
Well, it is true that you don't need to be much of a techy to learn VB. It was actually the first language I really learned. But it doesn't teach you very much or make for good programming. It does best at what it's designed to do; quick development for administrative, data crunching, low performance, non-technical programs with a GUI. Which often means that a bunch of poorly-thought out goals are being forced through without much planning. Good luck with it; cheap shoes don't last long and may cost you more in the long run than reasonably expensive ones.
Expanding a vast wasteland since 1996.
2^64 + 2^63 + 2^62 ... + 2 = a whole lot of grain.
Uhm actually it is 2^0 (=1) + 2^1 (=2) +...+2^63(last field), assuming ^ means power. This adds to 2^64-1 (for the math impaired, think about it) teskeAww, come on. Perl isn't *that* unreadable. It's more like 'cat'ing a uuencoded core dump!
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've finally had it: until slashdot gets article moderation, I am not coming back.
Try extracting the nth element from a list in C++ in less than O(n) using the standard linked list data structure. You could make a fortune with that algorithm ;) In my experience most Lisps in serious use are at least bytecode-compiled and most are compiled to native code.
A list is not the only data structure available in Lisp. For instance, Common Lisp has arrays just like C/C++ and they're as fast with proper type-declarations. Lisp is not inherently slower than C/C++; you just have to work a bit more to make it as fast. A Lisp program could be faster than C because it's easier to implement better algorithms in Lisp or because the Lisp compiler is better than the C compiler. The important thing in optimizing Lisp is to declare types and to avoid dynamic memory allocation during speed-critical code.
I've seen some numerical code go faster in CMUCL (a high quality free Common Lisp compiler for Linux/*BSD) than the equivalent in g++ (with all relevant optimizations, 10% difference in speed in favor of CMUCL), just because the CMUCL compiler is excellent in number crunching.
For more information see Association of Lisp Users, CMUCL is available at www.cons.org.
Anybody worth their stuff knows that when you are "retargeting" a language(VB) into another language(C++), the features required to support that are enormous and have to be VERY general.
VB is slow. C++ is pretty fast. C is the fastest, next to assembly. Though, not all C compilers were created equally.
Personally, I have translated applications from C++ to C that achieved 1/10 the size and 400% increase in speed. Especially in large data sets.
I'm not bashing C++, I'm just saying it has it's place. For instance, event driven GUI's. Fantastic! Large scale mathmatical models.. UGH! Database systems.. depends. But in any case, be prepared to feel the power of BLOAT.
And remember, that PERL is written in C. Java (the jvm is, javac has mixed C and Java (used to be all C though))is written in C. Tcl/tk is written in C. I bet a good bit of VB was originally written in C. Linux is written in C. NT is written in C. Xwindows, Netscape, LDAP, Oracle, Informix... c,c,c,c,c.
There's alot of C++ out there.. but nobody should pretend that it's the one-all end-all. Same goes for Java, Perl, VB, etc, and yes even C. And remember that the implementation of the compiler, libraries, and envoronment can make all the difference in the world.
Pan
Pan
I said no... but I missed and it came out yes.
VB is not chosen for it awfull Basic langage. But it's the best RAD IDE ! ...
I've always dream of a real "visual" langage
Delphi and JBuilder are good contenders, albeit not as "quick and dirty".
I think that, just perhaps, your argument is strengthened by the fact that you got the C wrong.
If I recall correctly (and I *did* just check the man page, just to make sure), strcmp returns 0 if the two strings are equal, not 1 (which indicates that blah is lexicographically "greater than" "bob").
Lisp is not a functional programming language
In a business environment with windoze desktop machines and DB servers... Let us both tender for the job of the DB-front-end application, I'll propose to do it in VB and you propose to do it in C++ or Java.... Now change the situation to ANYTHING else and VB will be the last on the list (I hope :) -= That is my first point =- My second point is a bit more clear, but less serious: Don't we (as programmers/developers/etc) have anything else to "discus" (read: argue about) than this? If not the we are in a better world that I realised :) Just for the record (read: keep flames at bay :), I am a vb programmer by trade and that is why there is one windoze machine on my LAN.
Like any good typist? Yep, but you aren't using
a typewriter.
You should use two spaces if (and only if) you
are using a monospace font. Even then, the extra
space ought to be inserted by the word processor.
You should only use a monspace font for special
effects. The whole concept is a hack designed
for older printer and typewriter technology.
Nobody prints a respectable magazine that way.
Proportional fonts are just easier to read.
You should never underline text. No joke.
In places where a typist would underline,
you should use italics. Underlining is yet
another hack for typewriters and old printers.
Good quality printing has always used italics.
With gcc 2.95.2 19991024 a hello world program takes only 4640 bytes
Of course it isn't inherently faster, just theoretically as fast. In some languages it's easier to optimize the code than in others and consequently the compilers may produce better code. In the case of C++ there has been a lot of competition and the existing implementations are quite good. I would think that most Lisp implementations produce worse code.
The thing is that IMO Lisp is more expressive than C++ and because of that better algorithms get implemented (it's easier and faster). Good algorithms affect speed more than the quality of the compiled code in many cases. If you would implement the same algorithms in C++ the result would probably be faster.
Yes, we need some thing more relevent, just talking about "business developers" means nothing. Some sort of objectified testing might be more appropriate, e.g. take the cream of developers in each language, and set them all a standarised set of programming tasks, the results are marked for speed of development, clean implementation, readability, portability, speed of execution etc. Then there would be at least a qualitative representation, as it stands the poll is next to useless, just a very sloppy way of garnering some PR.
Any sufficiently advanced man is indistinguishable from God
As I work for a rather large software company, I'd just like a make a few observations.
First of all, Java is really popular - but not for PCs - but server programs (distributed stuffish). Java and Java Servlets are gaining ground really quickly as far as I can see. Additionally, I'm seeing more and more companies switch to Java - not because it's a great performer (although the new IBM JDK is really really fast!), but because you can deploy large scale apps rather quickly, and fairly painlessly.
However, I don't see C/C++ going away anytime soon, because although Java certainly has it's merits, for most quick and dirty programming jobs, it's overkill. Although C/C++/Perl have the ability to program OO in them, they don't *require* you to program that way to get anything done. I, myself, do about 90% of my programming in Perl - because it's incredibly easy and quick to program in (once you spend a bit of time learning it). I constantly end up amazing the VB/C/C++/Java developers because I can get programs done quickly and efficiently. Go Perl! Thanks, Larry!
As far as someone becoming a new programmer, I'd start them out on C, and then work them up to Java as quickly as possible - although this survey doesn't say so, I see the industry switching more and more to Java in the future.
Well, enough on my rambling!
Mina Inerz [N. Reinking]
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.
I've finally had it: until slashdot gets article moderation, I am not coming back.
I find these statistics a little hard to believe. 35% of developers prefer VB? They certainly didn't ask unix developers. They only asked 150 people and now they're making broad assumptions about "developers". If "developer" means "anyone who has ever written a program of any kind", then I guess there are enough business majors to give 35% to VB.
I like Google! (any posting mentioning Google automatically gets a +1)
They are really cool, even if the hardware is very dated. I only wish I could get my hands on one.
Not before I do :)
It means whitespace is important to the syntax,
which is a bad idea (my opinion). It also means
you have to trust your editor to "do what you
mean" when indenting stuff. I would much rather
just have to type curly braces (or even "begin"
and "end"), where the intent would be very clear
to the parser, and to the human, and that two
pieces of code that appeared identical (but with
different whitespace) had different semantics.
I don't think anyone writes code without using
indentation to match the program structure. Just
let me do it. If I want help, I will use emacs.
To put it another way: it makes the user adapt
to the computer, rather than the other way around.
Yes, there are many other places this happens, but
with Python, it was unnecessary, and was put in
in a misguided attempt to make the user conform
to the creator's idea of useability.
Peter
Comment removed based on user account deletion
Anyway, I'm willing to believe that LISP is as fast as C++. But I still don't buy that LISP is inherently faster than C++, assuming an equally comepetent compiler, which is what jd seemed to be claiming. I find it hard to believe that any language is inherently faster than C++, other than perhaps assembly. (Whereas there are definitely languages that are inherently slower than C++... weakly typed lanugages, for example.)
MSK
1) your needs are relatively simple
2) your backend is stable
What happens when either condition is not met? There are endless problems. What is the single biggest source of these problems? Lack of transparency of the components.
When I had to work with ADO, I found it impossible to debug. The biggest reason was because it made native calls to the ODBC driver on the platform, and never produced debuggable SQL code. This was true in spite of the fact that the database the code was accessing was a Sybase SQL Server. What a nightmare!
Most of the people in this community are not from a school of thought that would ever accept a tool like VB. Not only do we not typically use component assembly techniques to write our programs, but also many of us will not accept code from third parties in most cases unless we have the source.
So, it makes perfect sense to me that VB comes out high in a poll like this and many of us can't understand it. The same thing would happen with databases. Access, MS SQL Server, and Oracle would make the list. mySQL would be left off.
-- Dave Aiello
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?
-CausticPuppy "Of all the people I know, you're certainly one of them." -Somebody I don't know
Fortunately, a lot of educational establishments start people out in Java now :)
C++ is very complex, but due to the pragmatic design of the language, its only as complex as you need it to be. Its also just about as efficient as C, assuming that you're careful about what you're doing. Obviously using features that require run-time support such as late binding are going to slow you down, and most compilers still produce less than optimal template code, but its important to distinguish between the language itself, and a particular implementation of the language (compiler).
FORTRAN may still be faster in certain instances due to its static activation records and restricted pointer operations, but in general C++ is not the dog that some people make it out to be. Recompiling a C program with a good C++ compiler will give you about the same performance, but with the added benefit of stronger type checking.
TedC
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.
I find the notion of anything even approaching bit bashing to be.. well, I have a strong aversion to it, because I'm not overly mathematically inclined. My forte is English. When I first tried to learn Perl (after having a bit of experience with C), I was ``mildly'' lost, to say the least. After learning more about C++, it all fell into place.. quite nicely.
Of course, even though that was some time ago, I still doubt anyone but the most eclectic of programmers would find Perl to be a good language to begin with. It would be a very strange progression indeed to move from Perl, to, say, C. Perhaps even more painful than regressing from C++ into C with no previous working knowledge of C.
I rather doubt that. The Perl community, overall, is a rather friendly one (even if I still think that Tom Christiansen is.. well, let's not go into that ;).
~ Kish
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... i>
The funny thing is, I could whip this up with as a three-tier, pretty robust IIS, whatever databse you have (I mean, everything has an ODBC driver)and a VB-COM object in a few days.... oh, that's right, VB is a TOY language... GOOD LUCK ON THAT JAVA! Hope you get those JDBC drivers to work!
DO NOT DISTURB THE SE
Uhh, yes you can.
Go back to class, kid.
You ask the wrong questions. Lisp is not used to solve common problems, people gravitate towards Lisp because their problems cannot be solved by the 'common' languages.
Anyway, take a look at:
I use VB/VB Script daily in my job and agree that most VB programmers are poor lost souls. They create crappy code with no thought behind readability or maintainability. The other problem is that most VB programmers are not _really_ programmers. They have no experience in other languages, no knowledge of common algarithms or data structures, and no understanding of how to write proper code.
When a good programmer uses VB, it is possible to achieve fast, maintainable, and understandable code.
However, I'd never use VB on a web site open to millions of users, a product for public use, or anything which requires true 24x7 uptime. (but then we wouldn't even mention microsoft products at all)
However, speed rarely matters in a buisness application because most buisnesses need GUIs, buisness logic, and data storage. Users usually have more latency than GUIs, networks tend to have more latency than any buisness logic implemented in the back end, and data storage is almost never the problem because of user and network latencies.
If high speed really is needed, encapsulate the needed portion in a language like C++ and then glue the pieces together with VB.
The only holdback left (that I can think of) is hardware resources. Since hardware is cheap in a large organization (by comparison to the cost of head count), IT managers are quick to jump on the NT/VB bandwagon. Build dedicated servers with a gig of ram and four processors each. IIS, SQL, Application Services, and a file storage system will hold a large portion of the company up for quite some time.
The problem is of course that IT managers are mislead into thinking that if somthing is written in VB, anyone who can build a GUI can therefore maintain any and all existing code. Which is a completely false assumption.
The other problem I see is that IT managers go down the NT route because they believe it is easier to support. And, their right. As long as they don't believe in 24x7 uptime (or, anything but 9x7 for that matter) What they don't see is that a very large orginazation must be built to support an NT infrastructure. While the same can be true for a Unix infrastructure, I believe that with the same funding, a Unix based infrastructure is easier to maintain. Unix's main problem is the lack of good online programming documentation and examples.
While IRC and UseNet are great for these kinds of things, almost anyone can go search msdn.microsoft.com for information on almost any microsoft technology and how to implement it without having to beg someone for an example. This is especially great for begginners who don't want to feel like newbies in front of a bunch of people.
Josh
> [] 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 thought that the HotSpot thing could only accelerate Server-side Java ?
The JDK1.3 will be really nice, because it will suppress many important bugs (you wouldn't believe how buggy Java is now, especially on the client side).
With fewer bugs, may be increased speed (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), Java may become usable on the client side with the JDK 1.3...
PS: If you have enough memory, on the client side, Java is a pig, it needs lots of memory just to do very simple GUI.
It all really depends on what I do, if I have to code for Winblows (co-op job and stuff) and its quick and dirty, I would use Visual Basic (repenting now). If it is something long or big, I use Visual C++ or Inprise/Borland C++ Builder or Delphi. For UNIX, I go for PERL for quick and dirty, C for speed and C++ if it is big.
Exception: if speed is not important and GUI fanciness is, then Java is my choice although I'm still relectant on it as its kinda of changes too much.
-- Note: These Comments are Generated by ME! Not You! ME!
It probably has something to do with the fact that the default network byte ordering is big-endian. Of course, that probably has its roots in the platforms the Internet got its start on...
--
Do I look like I speak for my employer?
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.
Yes, you obviously have more knowledge than all
of us ACs. Obviously. The evidence is overwhelming.
You probably got me wrong - I'm not saying they shouldn't have included Windows programmers in their survey.
I'm just saying they should have asked everyone including Unix, BeOS and MacOS developers. For all of those, VB isn't available. Therefore, I don't believe it has 35% total. 35% among Windoze programmers, maybe.
This message is provided under the terms outlined at http://www.bero.org/terms.html
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.
Every poll is partial, it seems like the programmers having been surveyed in this poll are consultants working with extensions to different M$ products. Hey, who wouldnt use Visual Basic for those tasks? Java would be completely off track in such a problem domain. As for 'Which language is mostly used/appreciated among the average joe programmer', we have a completely different picture. Still, such a poll would also be colored: Who were to be polled? In sum: Noone is without bias.
Yea.... My mom likes visual basic!
Perl ain't never gonna do nuthin unless I can set it up so my grandmother can use it.:)
Linux is only free if your time has no value. Windows is only free if you threaten to use Linux.
This statement is nonsense, and shows that you have totally misunderstood the reason. People use Developer/2000 so they can concentrate on the business not the tools.
You can be the greatest programmer in the world, but if you don't understand the business and can't get your application ready while it is still relevant, then you have failed in your mission.
Given that the professional Developer/2000 consultant brings both a technical and business expertise to the table, the pool of available talent is actually smaller than for conventional programming languages.
I think what he meant was (if you think of C++
as an object-oriented language primarily, rather
than a language with a whole bunch of features),
was that you could write code making use of C++
features (eg. overloading) without really taking
advantage of the object model, and so still be
in the "C style" (ie. procedural) but without
C compatibility.
There are some advantages to this. Making use of
function templates for nice typesafe algorithms
has some appeal, even if you don't want to use
classes and objects.
Oh yes it is, though, _Common_ LISP does provide imperative structures. But Common LISP is just a big cludge. It's not even a one-cell-LISP.
--The knowledge that you are an idiot, is what distinguishes you from one.
I have programmed in programmed in vb, pascal, c, and c++. Of all the languages vb I liked the least. Vb aims to let the coder do worry about the core of there code and mostly forget about the gui.
If I wanted to make a program that my mother will use, then I would most likely use vb at the moment. But vb works on the assumption that the gui is good- because the programmer has no why of debugging that shit. I will admit that for the majority of the stuff seems stable, but I started to find odd memory leaks and other odd stuff towards the end of my vb programming tenure. Given the stuff seems to be compiler bugs but 99% of my programs do not need a gui.
The bottom line is that a lot of "programmers" do not know how or do not want to make there own gui. The vast majority of programs would/do work as text programs. I just think that everyone and there dog can program to some extent and the extent they do not know they look to be automated.
While one can use C for large projects, using even a very restricted subset of C++ is probably a better solution. For example, if the only C++ feature you use is classes, you can design a much cleaner interface between different parts of a large software system.
A lot of people take the "all or nothing" approach to C++, but it wasn't designed to be used that way. Use what you need, and forget about the rest.
TedC
I've found, however, that when people need to get past the basic data goes in, gets stored in DB, or data is collected from equipment, gets stored in file, etc. that VB becomes a truly evil beast. Anything beyond basic operations has been hidden, tucked away, and completely obfuscated that it becomes extremely difficult to use. Add to that the inconsistencies that abound throughout the development environment and interfaces and all of a sudden the rapid development time you started with has blossomed and flowered into a serious long-term project. I've seen logic errors in VB along the lines of:
(a and b are fields from tables in a database object, same type, same properties)
- if a = b then
//always fails, regardless of values, weird error!
replaced in code with:- if b = a then
//code works properly!!!
Bugs like that scare me. It's not something that makes sense. It was working with database objects, and it took me 3 hours to fix it (searching docs and various online sources of info). That was when I realised that you always need to be able to trust the language you are using, and to have some idea of what's going on behind the scenes. VB takes all of that away from you, and you really have no idea of what's happening underneath. I'll take C++ with source code to the class/object interfaces over the VB property sheets and drop lists any day.VB has its plusses, and is really useful for Windows quick projects. Beyond writing calculators and little data entry screens, however, it's more trouble than its worth.
VB is popular because Windows has no bundled development tool available at all. Under *NIX there are a hell of a lot of useful little tools available to develop your own solutions to simple problems. People already familiar with getting around the shell can manage to churn out a script or two if they have to, and most have probably been tempted to toss a few lines of perl together.
Most Windows users don't have those options. VB really caters to Windows users who need some kind of simple tool to write simple programs. If Windows was supplied with a GUI oriented language of its own, VB wouldn't be successful.
Tec
------------------
got a tiger in my tank. fish very unhappy.
if (blah.equals("bob"))
:)
And if you do:
if ( ("bob").equals(blah) )
instead, you'll save yourself from an unwanted NullPointerException
No, I'm not a full blown programmer (I don't claim to be) and yes, I was a liberal arts major. For the things I wanted to do (CGI programming, primarily, and just learning the basics of programming), PERL was great. It gave me enough familiarity with data structures, control structures, etc., that I've been able to pick up some C and Java on my own. Now that I have some experience programming, I can see why things like working in a strongly typed language and actually knowing what is going on in physical memory are useful.
Before learning PERL I tried learning some Java, but I couldn't wrap my head around issues like why you wouldn't want all your variables to be global, or why all variables is so strongly typed (yeah, I know, stupid liberal arts major). OOP was beyond the scope of my comprehension, and a majority of the books I found on Java assumed you knew C and C++. Now that I have experience working with subroutines and have made mistakes (like not my'ing my local variables), I can see the advantages of these things...
Visual basic? programming?
I have logo. Does that make me an architect?
> 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.
http://rareformnewmedia.com/
That's the conventional wisdom all right, but
I wonder if it's really true.
If Larry Wall is correct that the design of
Perl reflects human natural language in a deep
way, it could actually turn out that Perl isn't
all that bad as a first language. If you've
got the head of a math geek, Perl looks like
a mess, but not everyone really has a head like
that. Could it be that Perl would be a better
first language for English majors?
I doubt that anyone has actually tried a
pilot program "Introduction to Programming
Using Perl". I bet that the main reason
that people keep trying to discourage newbies
from using perl is that the perl gods were
getting tired of the hordes of clueless twits
that descended on comp.lang.perl.misc when
the web went critical.
There are many developers using Delphi in Europe, especially in Germany.
I think it is called "Delphi-Developers-Conference", where more developers are attending this event than in N. America
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.
Use the right tool for the job.
Judging C/C++ compilers by comparing "hello, world" sizes is like buying a car based on the horsepower of its starter motor.
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.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
Excuse me...but I work for a living in a large corporation. 90% of the apps are written (still) in COBOL. (and no mention?)
Hehehe...you can tell this guy is a student.
You're missing the point. The discussion is not a complaint about how big "hello world" is, but is a (misguided, doomed) attempt to determine what's really in a Visual Basic executable - original code, bytecode, or actual compiled code.
> You forgot that smarter people use the
> right tool (language) for the right job.
No, no no. Really smart people avoid learning
new stuff if they already know something that
works. The question is, would it be easier to
learn about a another language than to convince
everyone else that it isn't worth knowing?
COBOL? COBOL's great for it's intended us -- business ap's.
Try running VB on an IBM 3090. AFAIK, it just doesn't work.
C++ is inefficient compared to C.
You could go the other way around too. I mean,
// Essentially calling the constructor
// directly anyway... For some reason
// C++ programmers seem to like capital
// letters, so I'll call the class
// Barclass instead of barclass
// Call the destructor, again, essentially
// directly.
/* Call the constructor directly without
/* So the function that handles {foo} is
/* Call the destructor. */
there's nothing about the C language that stops
you from writing extremely object-oriented
programs (not quite the same approach as C++,
though). Substitute structs for classes, and
use pointers whereever a struct contains another
struct, and you can create a hierarchy of structs
that resembles a C++ class hierarchy, even to
the extent that each different type of struct
has its own constructor and destructor (which
are called directly instead of malloc() and
free() or C++'s "new" and "delete"), and calling
the constructor of the top-level struct malloc's
the entire hierarchy. It's C, C++ style. For
clarity, an example (not included: error
checking):
C++:
foo = new Barclass(creation_parameters);
foo -> do_stuff();
delete foo;
C:
trying to hide the fact that you're
doing it.
*/
foo = new_barstruct(creation_parameters);
outside of {foo}. So what. */
do_stuff(foo);
destroy_barstruct(foo);
Sampling is a big issue here, and they probably didn't do it well.
Remember, though, most programmers are still forced to write for Windows or (gasp!) mainframes. I wish it weren't so, but that's why Microsoft is still a behemoth. Even with proper sampling VB would be in the top 4.
But then again, combinding php 2 and php 4 is a very arguable situation.
-
ping -f 255.255.255.255 # if only
The argument that Java changes more than C/C++ is not entirely accurate. The API's do change, but at least they are trying to change them for the better. In C/C++ the standards took *YEARS* (too long) to hammer out. You also can't trust what one platform (especially *nix) or compiler supports. Give Java the same amount of time that those standards committees took to "standardize" C/C++.
1) Create a Class file
Have as members of class file:
Integer (should implement as properties)
Left Node (integer, as property)
Right Node (integer, as property)
2) Declare an array of this class, the nodes are offsets, assume 0 is root
e to the i pi equals negative one
Since this discussion seems to have a lot to say about VB, I figured I might bring this up:
There is a VB to C/GTK converter that will handle most of the VB stuff. It's command line and therefore basically useless for development without VB for Windows. Search Freshmeat for this -- it's called vb2c. The guy doing it just made it for fun, but now, considering that we have "proof" that VB is the most popular language, it's useful.
I want to work on a VB GUI for Linux to complement this program; would anyone want to help me (or has this already been done)?
Kenneth Arnold
PS - I got interrupted while writing this so maybe someone has already posted something about vb2c. If so, just ignore this.
The word is /i.
Now get a grip and learn java before you come vomit on our playground, you VB drunken bast***.
Intersting that the survey treats C as sepreate entities. I mean, I know they are technically but how many programmers are exclusivly one or the other. In terms of the survey this wouldn't have changed the result first question but when asked thier second favorite how many who had chose C as their favourite chose C++ as their second favortite or vise versa. Would java show as being more popular other wise. I'm not syaing there's a hidden agenda - just it pays to be suspicious. Especially when we don't have the study just the review.
... with eskimo chains i tatto my brain all the way...
> C is a subset of C++, C++ is a superset of C.
> So, in essence, they are the same language.
Wow... try taking that to comp.lang.c!
C is not a subset of C++. C++ is not a superset of C.
This may be obvious, but some people on this board don't seem to get it.
/. reader is in a different category from most of the programmers working for big corporations. Don't sneer down at them too much. Not everybody can be a genius. They fulfill some necessary functions, and you'd be bored to tears if you had to do their work.
There are two types of programmers.
Your typical
This is not new. Microsoft didn't lower the standards. Remember COBOL? VB fills the ecological niche left empty when COBOL didn't catch on among PC programmers. (Let's count our blessings BTW.) Your typical VB programmer has the same skill level as your typical COBOL programmer.
well put. i'd rather go with Tcl though.
no assembly?
meaningless poll
I'm in the real world (sad to say) and have been doing Java work for between two and three years now. I've worked at four different client sites and at those sites have seen one project being done in VB while the rest (at least two dozen) were a mix of Oracle Forms/C/Java/Newton Script. The marketplace I'm in doesn't view VB with a whole lot of respect and you wouldn't get a contract at any of my clients with VB skills.
I don't think this survey is representative.
Anyone using a decent operating system can't use VB. I think they asked Windoze users only.
Among them, VB *is* popular (for whatever reason), and might actually get 35%.
This message is provided under the terms outlined at http://www.bero.org/terms.html
It means whitespace is important to the syntax, which is a bad idea (my opinion)
I realize this is only your opinion but here's my experience: In four years of Python programming (and other languages with similar conventions) I have never once had it cause a problem. I have never personally known anyone who had it cause a problem. I believe that Visual Basic also uses white space significantly -- to separate statements -- and yet hundreds of thousands of so-called "stupid VB programmers" don't seem to have any problems with it. I'm surprised that so many hard core Real Men C programmers are so scared of it.
I think that your objection is not only unfounded but mostly pointless. Every language has problems because of how it handles syntax. I would argue that C's sometimes optional braces cause far more problems than using a newline as the statement separator. Contrary to the widely feared but never seen white space problem, I've seen the optional braces cause problems in production code.
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.
Some of those languages I can buy as faster. But Smalltalk? Smalltalk, by definition, is a compiled language and uses a VM just like Java. In order for an imlementation to be certified, it MUST use a VM.
Additionally, if you need the features of C++, implementing them in those other languages will make them SLOWER than C++ (for instance, exceptions, generics (ie templates in C++), polymorphism, encapsulation, etc..
For contrast, consider something like C++. This is simply not an appropriate choice as a first language for someone new to programming. People (ab)using C++ without having a decent grasp of programming (particularly modularity/OO aspects) first have caused more pain and frustration for their better-trained fellows than I care to think about. In this group I include the designers of the most common C++ class library - MFC, which by itself has done more to turn people off C++ than even the language's own nastiness could do. This relative inaccessibility explains C++'s place behind VB.
As an aside, is perl a good choice as a first language? Personally, I don't think perl is a good choice for much of anything, but I suspect that even the most ardent perl advocate would admit perl isn't likely to appeal to first-time users. It's not meant to. (Python, on the other hand, would IMO make a very good first or teaching language.)
Java's low position on the list is best explained by three things: its relative youth, lack of proper support for certain types of programming, and performance. The youth issue is pretty self-explanatory. As for lack of support, here are some thoughts:
I think the performance issue is mostly BS. Sure, an interpreted or incrementally-compiled language such as Java will never be as fast as a fully-compiled language, but with modern technology the difference is very small. The weird thing is, the same PHBs who can't get "Java is slow" out of their heads have no qualms about using VB. What's up with that?
Slashdot - News for Herds. Stuff that Splatters.
Yes and no. vtable is the mechanism by which C++ implements polymorphism, so it is used whenever a virtual function is declared or a function or operator is overloaded. The problem is that the executable contains only one vtable per class, and all instances of the class perform lookups on the same table. If you have a class structure that makes extensive use of inheritance and polymorphism (like most frameworks and toolkits), then the resulting executable will be full of vtable lookups.
If the executable is small, the vtables will end up being close to the class method calls and it won't result in too much thrashing. But if the executable is big, the vtables get further away from the method calls. Also, if the classes are intertwined (many classes having multiple associations with or dependencies on other classes), then it is even worse. Good performance is only achieved when you keep the cache hit rate high. If the code generates a lot of vtable lookups (which are almost always remote), the principle of locality is violated and the performance declines a lot.
It would be nice if compilers offered the option to replicate the vtables for each compilation unit so the programmer can choose to trade off code size for speed.
Basic is a inherently bad language and one company decides to make a visual equavilent of that bad language. M$ has made VB popular for better or worse. Another thing is that it is so easy to use because of M$'s idiot proofing (if grandma ever master that mouse then VB would be her programming language).
I personally do not have vb and I had a whole year of classes on it. Of course, I do not do any gui stuff really, but when the time comes I will use a good tool kit like qt or gtk (I have heard bad things about gtk, but it is gpl).
p.s.-- M$ Word '97 seems to have this annoying habit of putting a space at the beginning of a line. An example would be when there is a end to a sentence I put a period then I put two spaces like any half decent typist would but if the first space makes the cursor move to the next line then the second space idents the line slightly (by one space). There anyway to change this? No other word processor seems to do this.
System.out.println() to print text? What idiot thought of that?
...or, even worse, conversion between different variable types... this with a complete and utter lack of typecasting...
The kind of idiot who decided that System.out.print() was better than printf() is the one who realized that a) it makes sense to chunk system stuff into objects and b) that making you call System.out will remind you that not all platforms HAVE a standard output (remember how Java is cross-platform compatible? Well, it isn't if you call System.out methods!)
Casting is unsafe. The people who designed Java knew that. C is unsafe, Java is safe. There are good reasons for both.
Why anyone would prefer java is beyond me, unless you really *like* slowdowns and writing 3 times as much code.
Err... Java programs are 3 times as much code if you're writing trivial programs. Hello World is quite a bit bigger in Java than in C. If you use Java's OO features well, you will find yourself writing considerably -less- code than you would in C. Not to mention that it's easier to debug (remember how Java is safe? That means you can catch bugs better.)
As a general rule, arrays and structs produce far more efficient code and add to clarity by not hiding what is running which function, in addition to giving the programmer a much better grasp of the actual state of the system (what instructions are being executed, and especially, what the memory looks like).
I'm really surprised that you would make a statement like "arrays are the clearest way to understand your program" after programming anything in Scheme. C memory-isms may be the best way to understand what's happening at the machine-level, but they're a real pain for understanding what's happening at the top level.
In short: if you want to program big things, you'll find that higher-level languages are far easier to use than lower-level languages most of the time. C is one step away from assembly language. That was intentional. Assembly language is a good thing to program in sometimes. However, you'll find you're a lot more productive (as in, you can finish your program faster and make it work better) if you program in a language that provides better tools for abstraction. Allowing you to name functions and call them multiple times with different arguments is certainly not the end-all and be-all of code reusability.
[Scheme's] forced "make everything recursive" is unnatural for most tasks, and a performance drag.
As a side note: it turns out that you can translate recursive functions into non-recursive functions automatically, so that they don't waste stack space needlessly (which is actually the only performance hit you take for a recursive function). Good Scheme implementations do that: if you want proof, run an infinite recursion in Scheme, such as
(define recur (lambda () (recur)))
You'll find that it runs forever. Now run the C version:
void recur() { recur(); }
You'll find that it runs out of stack space after awhile and dies.
(Oh, and if I were you, I wouldn't go around saying things like "Scheme is similar to Perl." Scheme people and Perl people hate each other [half-joke], and their languages are pretty durned different.)
-jacob
Er.. that should be "By definition, Smalltalk is an *INTERPRETED* language. Well, it's compiled on the fly (similar to a Java JIT) anyways.
A lot of people take the "all or nothing" approach to C++, but it wasn't designed to be used that way. Use what you need, and forget about the rest.
Hmm, I don't see this as that simple an issue.
There are things in C++ I'd rather people not use or even know about. So can I just forget them? Of course not.
This is how it usually goes. You end up inheriting code from somewhere or someone. You need to maintain it, or maybe further develop it, or whatever. But the people who first wrote it, used those things you don't want to know about.
So do I just forget them? No. I have to live with them. Either that, or rewrite the whole thing.
So you just can't "forget" a feature exists in a language. You'll have to learn it, know it, and live with it. Like it or not. Software and especially source code lives a long time. And all the not-so-nice things live with it.
However, if I was faced with a choice of doing a very large project either in C or C++, I might still be inclined to pick C++ and try very very carefully to use very limited set of its features. Just having real objects around when designing a large software project is really worth it. But that's only if the only alternatives were C and C++.
Let some entity strike me down, if I should ever go work for a "finacial institution".
:-)
Anyway perl is a sideline, I'm working at becoming an Oracle DBA.
This is sort of a non sequiter, but I have to post somewhere....
/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++.
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
It's 10 PM. Do you know if you're un-American?
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.
.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.
;-) So, yes, overall I'm still quite hopeful.
The fact that the entire language seems to me like a gigantic glueball(in the sense of it binds everything together, it picks up some rather shocking cruft, and you'll sometimes get stabbed by something locked inside) doesn't take away from the fact that glue can be great for whipping things together--just ask TCL developers.
Past that, I'm not surprised Java hasn't overtaken C. Beyond the whole speed factor, C is just alot cleaner for the non-expert programmer to mess around in. Particularly when it comes to making patches to existing codebases, there's just so much less to need to figure out in C than in a fully object oriented language such as Java. Granted, when C is forced to do things C does not like to do, C gets very crufty(thus the recent complaining I've been hearing about lsh's pseudo-object system), but a) There's a massive codebase out there written in C, b) There's a massive amount of deployed C code(this isn't the same as a), and c) C is less daunting for a moderately skilled programmer to mess with.
However, I must say that the reason Java hasn't displaced VB down to third(VB/Java address a different market than C, if you think about it) is that Sun royally and utterly bungled its deployment. VB projects "compile" down to an
Java development with the JDK is laughably awful, and will someday be a textbook example of how not to burden your coders and your users.
From what I've seen--and I'm sure the experts can enlighten all of us further--merely getting javac to function(got everything in the right folder? Got your path environment set right? Sacrifice the correct barnyard animal?), then executing that Java app(better nuke the henhouse just to be sure) is far beyond the difficulty in even writing a simple Hello World!
The fact that code never compiled into a single file didn't help either--web deployment was a mess, with forty web server connections for a single semi-useful app. JAR finally fixed this, but THAT standard got mangled by CABs.
Don't even get me started on Code Signing--there are three, three, three ways to go for this little project.
Alot of the problems wouldn't have been as significant if javac was as straightforward to play with on your average Linux distribution as, say, gcc. The non-free aspect of Java destroyed this possibility--and Sun's new "Gotcha Source" License isn't helping.
Java came out of the gate hard to install, harder to deploy, slow to load, and slower to run.
Things have gotten better--J++ and the MS VM have been instrumental in this regard--but the core usability of Java is farrrrr less than VB, and even less than C.
Actually, I had just about given up on Java until I found the one company that has truly understood the promise of Java. Mindbright. I've already written about these geniuses here, but suffice it to say, the fact that there's now a extremely high quality Java deployed SSH and SSH-VNC(VNC into those hosts behind the IP Masq, all via SSH) solution is amazing, and caused a complete reversal as to my opinion of the viability of Java as a useful platform.
Using something written in a language on a daily basis will do that.
Yours Truly,
Dan Kaminsky
DoxPara Research
http://www.doxpara.com
"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.
It's 10 PM. Do you know if you're un-American?
C is not a subset of C++. C++ is not a superset of C.
Yes, they are. They are not a proper superset or subset. There are small areas where the standards do not overlap, but more than 99% of the standards do in fact overlap and are subsets/supersets.
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.
It's 10 PM. Do you know if you're un-American?
Java may be handicapped by performance or design mistakes, but that's not the reason that it has not caught on. Big companies make very conservative decisions when selecting programming languages. They will only switch to a new language if it is already popular.
Everybody seems to be training their programmers in Java, but few are actually making the dive. This is similar to what happened with Pascal. Ultimately C beat it out because of its special ties to UNIX. That created a pool of experienced C programmers and reusable code which provided the critical mass necessary to attract attention. Visual Basic got the same sort of boost because Microsoft threw its weight behind it.
Java needs to secure a market niche so it can develop that critical mass. Web applets didn't seem to be enough to tip the scales, but with a bit more help it could displace VB.
C is a functional programming language, C++ wanted to be object-oriented, but failed because it allows people to think that, quote, C and C++ are the same language, end quote, and not enforce the object oriented thinking, which results in a terrible mess.
Java, on the other hand, doesn't allow that, and though you still can get away with programming using Java syntax and (name-it) functional mentality, it's much more difficult than to grok what OO is and do it the right way.
OK, kids, now get away from appliances, we're gonna reboot the house
As an official OOP hater I resent this "too hard" comment.
OO is harder than procedural, but it is also nearly useless in many domains. It is complicating software, languages, and training in exchange for minimal benefits. Perhaps in large RAM-centric scientific or modeling applications it shines, but I have found OO to add nothing but complexity, headaches, and mind-numbing buzzwords to regular business apps.
It seems like OO is all geared up to solve "problems" that are not really problems. For example, the apps I work on expand at least as much in the operational dimension as they do in the sub-type dimension. OO tends to assume the type-wise orientation is better than operational-wise orientation, which I find to be bogus. (Some OOers try to remedy this OO weakness by adding "pattern" classes. These are often nothing more than bulky, silly middlemen classes that add nothing useful to software except satisfaction for anal-retentive OOP class protection purists.)
Inheritance is another look-good-on-paper-just-like-socialism OO concept that makes bigger messes than it solves. The real world does not expand or change in a hierarchical fashion. Businesses love to recombine features into unpredictable new arrangements that do not follow any clean hierarchy. OO books like to use animal species and shapes for inheritance examples, because most business examples would prove too inter-relational in growth and change patterns.
Finally, there is not one shred of scientific evidence outside of pro-OO organizations that proves that OO is superior for most applications. Even the hyper-promoted reuse of OO is being withdrawn as a benefit. Any remaining benefits are vaguely stated in a Zen-like tone or are perhaps personal preferences. (Software engineering is about modeling developers' minds and habits more than about modeling the real world, which OO does not do well either. Thus, OO may simply be a subjective personal preference.)
Much of the criticism that OO fans toss at procedural concepts are based on a bad specific language (like C), or a bad procedural experience that they were too uninformed about to solve. For example, I sometimes bump into OOers who claim that procedural/relational programming cannot factor as well as OOP. However, with a few language constructs included, it can indeed factor as well as OO. (My results are often ugly from a type-safety standpoint, but they factor.)
However, that amount of abstraction is often not a goal of most programming projects anyhow. It is widely accepted that building generic routines takes roughly 3 times longer than building per-application routines. Very few business will budget for this.
Part of the reason is that they know a new language or paradigm fad will pop up and eat away at their source base within a few years. I can't wait for this day. OO has been mucking up software and progress with useless mind-candy and abstraction toys for too long. It is time to leave the dOOrk ages behind.
Table-ized A.I.
You have to be a Real Programmer to use any language other than VB? Being an avid C/C++ and Perl enthusiast, I find it rather interesting to have myself compared to this definition. Is there something vaguely reminiscent of bit bashing in hacking C/C++? I am well and truly boggled by the very assertation.
~ Kish
I'm not sure I totally agree with your point that a GUI does not make a computer easier to use, but as far as the VB quote, you are dead on IMO. That was one of the first things I noticed when first encountering VB and VB programmers: VB lets anyone write a Windows program. This is not a good thing. This is how you end up with database apps that do 4 full table scans to select a record.
Use VB for mission critial apps? That's laughable. And I doubt that many people use VB for the critical components of their mission-critical applications.
In my experience I've only seen VB used for a non-critical Client interface to a perhaps critical back end. If a PC client dies once a day, who cares? But if the backend dies once a month, there is hell to pay. "Just fire the guy".
I'd never ever do mission critical application components with VB. Or with Microsoft Windows anything. Sorry, I just don't see the stability or tools to do so.
COBOL on the IBM mainframe is THE most mature backend. And I find it incredible that it didn't even make their list, given all the COBOL programmers I've known.
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.
I'm still working on a clever footer.
Recently, a friend of mine wants to implement a simple parser for basic +,-,*,/ computation, well, a binary tree is needed. Simply speaking, I want some data structure like this(in c) struct node { int data; struct node *left; struct node *right; } I can do that in java, perl, c, c++, python, but don't know how to do that in VB. Can somebody enlighten me on this? In my opinion, a language not capable of complex data structures sucks.
Whilst a lot would appear to depend on the size of the survey, this result isn't particularly suprising. VB has a (relatively) simple to use UI builder which gives immediate results. The closest thing to it is Delphi (why didn't that show up in the results?). Java on the other hand has several UI builder offerings, but nothing really sticks out as being as friendly as VB. The really sad thing is that programmers carry on programming in the language that they start in ... which means that we'll have a lot of Java written in VB ;-)
Why do so many use Micros~1 VB?
Because it makes sense to use (and learn) a
current, well supported product.
I'm still maintaining a DOS product, written in
Professional Pascal, linked using PLink and it
depends on old Netware function calls to Novell
servers. Data is via Btrieve, of all things.
Today I've linked a new version together and it
works on some machines here, and not on others.
How the **&^"%£$&! do I figure out what's gone
wrong?!! I wish I was working with something
where I could get some help!
On the other hand, if your software aborts because
of an MS bug there's ^%"$£ all you can do about it
either.
Aren't computers wonderful?!
Oh, and don't spout the Linux argument at me
because we've ZERO chance of persuading all our
hundreds of clients to abandon Windows, Office etc
just for our sake.
Bah.
Exceedingly lazy coward.
I can't think of a good reason to use C for anything new, now that there is an ISO standard for C++, but sometimes I do it anyway. :-|
TedC
Contrast this with declarative languages that emphasizes clear and clean definition. Although it might take a little to learn and a little longer to program (often not), the result is always much more robust and maintainable.
PS: You want examples? Ok, for example Haskell, ML, Mercury, etc.
as a Perl progammer, you can work in a financial institution and do fancy programs (or so you think).
as a VB programmer, you can work in a financial institution and do stupid, but easy-to-write and fancy (or so the business users think) programs.
And most of all, the second option usually gives you a much better salary, God knows why !
So I guess one should really learn VB, and keep Perl (or better, PHP3) as well as Java for home programming (if there's such a thing).
You'll need at least two if you want to be an architect. Three, if you expect to charge the big bucks.
The survey found that 35 percent of programmers use Visual Basic as their preferred language for writing business software, while 20 percent picked C and C++. Java ranked third with 9 percent in the third quarter of 1999, up from 5 percent six months ago.
The question is how to interpret the reoccurring word "business" in this quote, does it mean:
I suspect it is the latter, and if it is - I'd rather have my language of choice not show up first on that list. In general, I have found that closer an application is to money (manipulating it, tabulating it, etc.) the less fun it will be to work on and write. Would you rather write software to calculate mortgage payments or manipulate/view objects in 3d?
I believe the type of software most "real programmers" enjoy writing is the type of software that poses enticing and possibly difficult problems to be solved, programs that are heavy on the mental stimulation aspect. The problem is, the programs that are most highly in demand are the run-of-the-mill, let's-crank-it-out business applications - after all it wasn't that long ago that COBOL was listed as the language having the largest number of active lines of code (it may very well still be true today).
It is possible that the study is really asking: "When you don't want to bother actually having to get too much into the computer science side of things and just want to bang out an app as rapidly as possible, which language do you use?". If this is an equivalent question to the one they are asking the results are hardly surprising.
there are two kinds of people in this world - those who divide people into two groups and those who don't
The guy your describing is not an average VB programmer Seems to be more some kid out of high school who has decided he's a programmer cause he can drop a command button and have it do something The average VB programmer that I know can tell you, in detail, everything you just talked about. Most of these VB programmers are students in college or just graduated and either took a LOT of courses in VB or started in c++ and took a lot of vb after that. Most had database courses (where we learn about data req's as a by product of databases) So overall VB has a wide range of programmers Kids in high school who have no clue about smooth clean code but just want to do something cool and deem themselves programmers (same would probably exist with any language but not to the level of VB) And people that know what they are doing can develop fast clean programs and do it well
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?
It's 10 PM. Do you know if you're un-American?
I agree that VB is trashed a bit overmuch and so does Linus, judging by this quote from recent interview:
"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.
agreed. i think Linus is a decent enough kernel hacker, but he criticizes anybody and everybody who disagrees with his philosophy on "how things should be done". the man's flames are perhaps overshadowed only by his massive ego. from the now infamous flame war with Andy Tanenbaum (at the time Linus had 2-3 years OS programming experience vs Tanenbaum whom has taught and written books on the subject for many years) to the more recent flame fest between him and the egcs/gcc developers (yes he isn't pleased with gcc either, or the ISO C standard for that matter), Linus is well known for telling other (more experienced people) how they should be doing something. bottom line is don't take ANYTHING he says too seriously. he'll talk about anything regardless of if it is beyond the breadth and deepth of his knowledge and experience.
Hm. Maybe *viruses*, or *macros* ... if writing macros for your MS-Office app counts, then I can indeed see why VB topped the poll. If every administrative assistant who writes a macro or two counts, then of course.
"Oh, I hope he doesn't give us halyatchkies," said Heinrich.
Can't we have a poll here at /.? Please, Rob?
/. citzens does NOT (like to) use...
Here is a list of language I would like to see:
Assembler
C
C++
Python
Pike
Perl
Tcl
Java
BASIC (VB fits into this catoegory too)
Ada
LISP (Scheme fits here, too)
Erlang
Prolog
Another thing that would be fun, is a poll about what language the
--The knowledge that you are an idiot, is what distinguishes you from one.
And not all systems HAVE a 400mHz CPU or 32MB of RAM either, though there's no abstraction in Java to remind you of this. Java brings about that need to upgrade hardware regularly that some people installed Linux in part to avoid. I'm glad that Java is still limited to private, corporate networks, and hope that I'll never need Netscape 6.0 just to be able to use a search engine.
VB - small quick and dirty business applications often for use only within the company. When program development time is crucial.
C/C++ - large programs in which speed is an important factor, or when anything else just won't do.Java - originally hyped for the ability to write applets (Ya know the ones that take an hour to load when they do, and often crash your browser) but seems to have increase popularity on the server side because of the ability to seamlessly(sometimes) run across NT and *nix servers.
I think a poll should be taken asking the language developers use for specific jobs. For example some catagories could be: database apps, web apps, commercial software, etc.I remember a 'PS' from one of slashdot readers, saying "Microsoft just lowered the standards" for programming.
How true it is. VB Programmers churned out by half baked organizations have enough skills do build a simple ODBC based VB app as shown in the Idiots guide. Thats it. Most of these "programmers " do not have any understanding of complex data structures or OS related issues. I am generalizing. I know a lot of VB programmers out there who do complex stuff, but they all have a decent background in a more low level language. C/C++ and Java are used for enterprise development. Yeah GM does VB so do a lot of other organizations. Then why the hell is CORBA/Java liked by so many developers. Platform independence. To top it all have you looked at VB Error messages, "Path not found" - So what do you do - find a path ! VB is good for small operations. Yeah with good programmers you can scale applications, but my advice dont. Try C++ or Java. Try a class library. Stop coding on the fly and do some analysis and design. If you want your apps to live beyond two years, stop using VB.
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
~ Kish
..along with most everything else GNU has ever made besides GCC. I think I'll stick to trusting Linus only with regards to kernel hacking and determine how I feel about other things like languages and applications on my own. ;)
~ Kish
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.
http://rareformnewmedia.com/
Because C++ is a superset of (most of, that is, ``clean'') C, and I'd imagine that there aren't huge mounds of programmers out there who know C but don't know anything of C++ yet. Of course, for those that know C++ but not C, I fear for them having to learn it backwards, should they ever find the need for C -- regardless of what Bjarne may say, as egotistical as he is.
While it's true that using C code in a C++ application is usually counterproductive at best and a complete kludge at worst, I'm not sure how you mean, ``write C++ in C style''. You mean bother yourself to use all of the features of C++ by ignore their intended usage? That's even worse than including C code in there. ;)
So, yeah, C and C++ are two completely different approaches to programming. However, they are quite similar, one being the obvious extension of another, and most people who know one, know the other. It's not that big of a leap. Java, on the other hand, may have syntax similar to C (but then again, so does Perl), it is not a natural extension of C++.
In short, to be very precise, the C++ specification includes most of C (there is very little of the original C language that is unsupported). C is a subset of C++, C++ is a superset of C. So, in essence, they are the same language.
~ Kish
Please, be serious. It's faster than java but let's not kid ourselves.
Include Pascal/Delphi in that list please
My Karma: ran over your Dogma
StrawberryFrog
There are a lot of UN*X people still writing ANSI C code, and it's not just the FSF either (though they're a high-profile offender
To be concise: hell no .. It is probably best for those that know C and a little about OOP (or those that know C/C++.. if you don't know anything about OOP, you might not ``get'' it -- in its entirety -- quite as easily while trying to learn Perl, though YMMV). I personally think it's incredibly useful for what it's designed for, but anyone who wants to learn that as their first language is crazy (though not quite as bad as Pascal). C or Java are much safer choices (though I'm sure you know which I'd prefer).
~ Kish
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 realize this is probably a hopeless task here on slashdot, but I wish folks would lighten up on the VB-bashing.
Vb is like any other computer software/hardware tool. It's just a tool. There are good VB programmers, and there are bad ones.
VB is used in corporate settings a lot because it integrates well with other microsoft products they probably have (or non-microsoft products like crystal reports, visio, whatever). It is trivial in VB, for instance, to OLE embed existing excel sheets users already use and populate and strip data from it instead of rewriting the same interface. (can you type OLE1.CreateLink c:\Docs\Excel.xls, OLE1.Refresh?)
It can be written so that it is VERY quick to develop and VERY fast. If you class properly, type your variables & scope correctly, use a proper database backend (NOT access) and don't use bound controls, it can approach C++ in execution speed with FAR lower devopment time. Generally, on these types of corporate data matinenance applications, it is not application execution speed that is the limiting factor, but network bandwidth and database access. The speed you would gain from taking a well-written VB app of this type in C++ would be miniscule. Note the well-written part. You could redo a poorly written VB app in C and speed it up, could so could a proper re-write in VB!
Granted, it is not for every project, but there is a reason it is used in lots of fortune 500 companies (Like GM). Because it is the proper tool for the job.
--a PROUD vb programmer
DO NOT DISTURB THE SE
Don't get me wrong, I think it's interesting and it generates a lot of interesting comments, but it's a bunch of hogwash. This survey doesn't address the needs of the companies who are employing these developers. It doesn't address the platforms they are developing for...it doesn't discuss if the people are working on long term or short term projects...etc...
:) Perl...
I can drive to Idaho and conduct a survey on what kind of vehicle you drive and the survey will show something different if I go to Los Angeles and perform the same survey. Meaningless.
Businesses are looking to fill specific needs. They need applications that are developed for those needs. The tools used to develop those applications will be based upon what the application does... quick with a gui for Windows...yeah..VB.. that isn't a statement on the quality of the language..or the quality of the programmer... it's a statement on the needs of your typical "under the gun" business of the 90's.
Now...back to my latest obbsession (I don't care if it sucks
Visual Basic 5.0 and 6.0 uses the same backend compiler as VC++.This means that simple loops and conditions will execute as fast in VB as in C++. GUI speed will be equivalent(since that depends on Windows, not the language used). VB is slower for small apps because one needs to load the msvbm60.dll, which is 1.2 MB, from disk. The main limitation in VB is not the execution speed or size of the executables, it is : - the feature bloat - the "intelligent" type checking - The lack of true inheritance - Not having constructors.
I know most Slashdot readers, don't consider VB a "real" programming language, but its popularity poses real problems for the growth of Linux. A huge amount of critical apps (even if they are not "real" apps, but only "business" apps) are written in VB. Until this changes, desktop competiveness (never mind dominance) for Linux is a pipe-dream. I remember hearing there was a group that wanted to port VB to Linux. If you ask me, this would be one of the best ways to popularize linux.
Also, if you read LinuxToday, you might have noticed the recent announcement of the Python Consortium being formed. HP is one of the initial members, and they're hardly an insignificant company.
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.....
> 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?
Sheesh, evil *and* a jerk. -- Jade
> There isn't a tool out there that makes adding GUI elements easier than VB (save Delphi...which has a very VB'ish interface).
Please don't think that this makes Delphi the same as VB. I have used both, and know that VB quickly runs out of steam when trying to do interesting stuff, whereas Delphi gets you 95% as far as C++ does.
However, if you want to, you can use Delphi like VB. Perhaps this is not a good thing - As someone who often reviews Delphi code from programming job applicants, it is sad to see how low the bar has become. The VB, Data bound, cut & paste, drag & drop programming style is very noticable. Some of these people barely know procedural programming, let alone OO.
> Imagine if there were a VB like tool for Linux
Can you say "Borland Delphi for Linux"?
My Karma: ran over your Dogma
StrawberryFrog
>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.
A more interesting survey would have included a trawl of the universities to find out what languages they're using. Although no one in business now seems to be using Fortran (apart from in legacy systems), many maths departments code almost exclusively in F77: everyone understands it, and it has none of those new-fangled pointer things to slow down your code. As it's fast and 'easily' parallelized, maybe we're about to see a rennaisance in Fortran coding for Beowolf and SMP? It's a shame the GNU project seems to be in limbo.
---
Remember the persian chessboard problem*? Rate of growth is at least as important as amount.
* For the proverb impaired, a king promised a young man a reward of his choosing. The young man asked that the king take a chess board, put one grain of wheat on the first square, 2 on the second, 4 on the third, and so forth. The thing is that this ends up being:
As anyone with an alpha can tell you, 2^64 is a huge number. I heard somewhere that this number was quite a bit more than the annual grain yield for the whole world for any given century.-- Slashdot sucks.
Not too many computer science people program in it, but it's still *very* popular in the scientific computing community. --Troy
"My life's work has been to prompt others... and be forgotten." --Cyrano de Bergerac
It is what we use for large projects and it screams on Linux...what more could one want?
Are the VB programs generally quick and dirty applications written for a demo or proof of concept? Are the people who are doing these VB not really programmers, but maybe a QA person or a technician writting a quick application that they need?
Injured real programmer wins against Mattel!
I've seen at least one statistic from Microsoft claiming over 60% of all new software is written in Visual Basic. In that same presentation, they claimed that only 20% of all software for the PC is written for the shrink wrapped market. This is the point of the whole "enterprise" buzz that started a few years ago. Traditional C-style applications are in the minority compared to in-house corporate web tools, custome databases, time trackers, etc.
I followed the link to the article, but couldn't find the actual results, or proper description of the sample population, or proper description of how the survey was carried out, or a statement of its accuracy (e.g. +/- 2.5%). Therefore I think it shouldn't be take too seriously - it doesn't seen very scientific or statistically accurate to me (of course statistics can be massaged/manipulated to make anything seem true). I tried looking on Zona Research's web site, but that's a pretty closed place.
35% VB + 20% C/C++ + 9% Java = 64%. What about the other 36%???? And what is this mixing of C and C++ about? That's what ignorant HR departments do when they post job descriptions!
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?
The problem here is IS management. They are increasingly clueless and are easy prey for vendors who claim that the difficult and complex task of systems development can easily be solved by mediocre developers with a souped-up IDE. Ask the average "VB guy" if they know what a finite state machine or Statechart is. Or if they know how to elicit data requirements from users and end up with a normalized ERD. Usually, I get some guy who can make an entry in a grid become deleted by dragging the entry to a trash can and have a flame pop out of the top of the can followed by a puff of smoke. But when I tell him that the file I'm sending him is sorted and that he should use a binary search to quickly look things up in it, he tells me VB can't do that. Oh well...
I want to be alone with the sandwich
C++ is a language I have very rarely seen used in the realm of internal business applications. It might be used to interface with some component that only has C API's but other than that its complexity makes it too expensive to work with.
Java finished 3rd only because it is new and because a lot of people still don't realize that you can write wonderful thin client applications with it on the back end. I have yet to see an applet or client application that is actually useful and performs reasonably. I've worked in both Perl and Java, and to be honest, I prefer working with Java (sorry folks!).
One thing I do find amusing though is why didn't COBOL show up on the list? Most big companies pretty much live on mounds of legacy cobol code.
---
This sig has been temporarily disconnected or is no longer in service
Every human being who has taken just a few lessons in probability would know that a poll with no more than 150 participants is very likely to give an incorrect result. The probability that Zona simply picked more people that favors C/C++ that in the real world is simply far too big when the number of participants is this low.
-larsch
Isn't Zona the guys paid by Microsoft for years to show that "NT was superior to Unix"? This sounds like the Mindcraft fiasco to me.
I am not a business programmer. I live and will live on campus for a while. My colleagues, my friends, and even I when I decide that it's time to program, only use Matlab. Does that count as a language?
When for speed matters we don't use Matlab or Octave, we go to C. One guy uses Fortran and another likes C++, but they are exceptions. And this is valid for any kind of platform, from win95, to Win NT, to Linux, to Solaris, to IRIX, to HP-UX. I personaly use Matlab for everything, you can even build a GUI for your input parameteres now. Easy, powerful and almost like C.
I thought BASIC was the ZX Spectrum language where most of us started to play... Is it now aitec?
A.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....
---
- Give a man a fire and he's warm for a day, but set him on fire and he's warm for the rest of his life.
Who commissioned the study? How much did they pay? What were the methodologies. Smells like Mickeysoft marketing to me.
Tcl, Perl, Python, C++ -- and then state that C++ is inefficient compared to other languages? :)
Redo the research
I bet you even use goto in C.
Sorry for forgetting Pascal/Delphi. I really thought it was on my list...
With assembler I meant the assembly language of any architecture; i.e. low level languages. And I am very aware of that that language differs quite much between RISC and SISC architectures, end event between two RISC or SISC architectures...
First of all, everyone is suggesting his/her own special language. That's OK, but we need to cut the list down a bit. Perheaps group similar languages into one option.
Yes, BASIC is a bit different from VB; especially if you mean ABC Basic or COMMODORE BASIC...
But we can not have a poll with one hundred options. Or perheaps we can, Rob?
If we are going to have a short list, I suggest joining languages with the same programming paradigm/sub paradigm. Such a list may perheaps look something like this (Please don't kill me, just comment on it, if you feel something is _very_ wrong):
1) Low level (The machine language of your favourite machine, C)
2) Ada descendant (Ada, Pascal, etc. To be really evil, I place BASIC here too, even though it does not belong here...)
3) Object oriented and imperative (C++, Java, Objective C, Python, etc)
4) Functional (Lisp dialects, etc)
5) Logic languages (Prolog, Erlang)
6) Stack oriented languages (PostScript (Yes it is a programming language, or at least it is Turing Complete...), Forth)
7) Other
And this list is anyhow too long...
Second, I realize that there is no reason for this poll; each of these language categories has its application area. The important thing is which language inside each group you select, not which group, because that depends more on what you are going to write than on your personal preferences.
--The knowledge that you are an idiot, is what distinguishes you from one.
This guy is obviously clueless:
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.
Enough said.
Uh, 150 people in 50 "large companies" is their sample group?? It doesn't sound like a very complete sampling to me...
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.
>If Larry Wall is correct that the design of
Perl reflects human natural language in a deep
way
On the other hand, Larry Wall might be full of it. I personally think he is, on this and other topics - but even more than usual with this claim. The "design" of Perl (a misnomer, since Perl wasn't so much designed as evolved) certainly does not reflect in any meaningful way how I personally process either human or computer language.
> Just because something is simple to use doesn't mean smart people shouldn't use it.
You forgot that smarter people use the right tool (language) for the right job.
Far too many programmers too easily blaspheme their favorite language in the name of the Holy War of Languages by preaching their language is the One True Way.
You aren't going to write a compiler or an OS in VB. Use the langauge(s) for what they were designed for. (Design and Evolution of C++ is a great place to start for what C++ IS and IS NOT good for.)
For my needs VB is absolutely useless, for others its perfect. (I'm a game developer, performance has the hight priority. Throwing an interface together and data mining has the lowest priority.)
Cheers
I don't think this is actually the case - the CNet item seems to state that the report was on the ubiquity of usage of programming languages rather than how well-liked they are by the developers who have to use them. Hence the preponderance of VB.
Actually the CNet report isn't really interested in that at all, it's just another poor piece of Java-bashing journalism[1]. I don't know if the Zona study itself takes this line too[2].
Actually I think Java comes out of the report pretty damned well given its age. But I'd be interested to know how well the other languages fared, esp. Perl, Python and the like.
[1] Not that I especially like Java personally. Well, the language is nice, but the standard libraries really bug my balls.
[2] (Who are Zona Research, anyway? Is there any good reason we couldn't set up a bogus market research company and forward studies to the media made up entirely of our own opinions?)
--
This comment was brought to you by And Clover.