View Full Version : What programming language do you use?
Achinz Feb 24, 2004, 08:27 PM I'm curious about the popular programming languages used currently and wonder what "civficers" use in their work and play. For a level playing field, some summary of the useful features of the language from your point of view would be helpful.
ainwood Feb 24, 2004, 08:56 PM VBA. Because it ships with MS Office (and another couple of applications that I use in my work), so it is always available. Because I have become proficcient with VBA, I also do a lot of VB programming in my 'spare' time. :)
CivCube Feb 24, 2004, 09:14 PM C++ is used by almost everyone.
bobgote Feb 24, 2004, 09:20 PM Depends on what i'm doing.
Java is usually the choice because its easier than C++, very well documented and much safer to use. and the downside to java is the overhead, therefore it is slower than C++ which is rarely an issue for me.
Achinz Feb 24, 2004, 10:19 PM Originally posted by CivCube
C++ is used by almost everyone.
Really?
This might need some elaboration eg should depend on the size of the project on hand, wouldn't it? I thought for smaller programs it might take less effort and be more efficient to use a simpler language.
ainwood Feb 24, 2004, 10:39 PM C++ is most certainly [i]not[/ii] used by nearly everyone!
VB is actually one of the fastest growing, simply because it is one of the easiest to learn.
kcwong Feb 25, 2004, 01:23 AM I'm curious about the popular programming languages used currently and wonder what "civficers" use in their work and play. For a level playing field, some summary of the useful features of the language from your point of view would be helpful.
I used the tool that helps me does the job.
I use Java when the ability to cross-platform is important.
I use C++ when you need deal with native codes (e.g. using other libraries, communicating with hardware, low-level tasks that Java cannot access) or when we do not want to code to be easily decompiled. (My company makes data security solutions... many things simply cannot be done in Java)
I use Java (more) or VB (less) when I need to hack up something real fast.
I use Assembly when dealing with drivers. And a subset of Assembly when programming smartcards.
And when dealing with web interfaces / sites, I use whatever is needed. ASP, JSP, JavaScript, HTML, PHP, Perl. Anything the clients use. I prefer JSP though (Tomcat + Apache).
Jeratain Feb 25, 2004, 01:36 AM Java. I'm keeping a close eye on Whitehorse though; it sounds like it has great potential.
KaeptnOvi Feb 25, 2004, 03:39 AM I primarily use java, sometimes C++ (not much anymore though)
one reason why I nowadays prefer Java is that with Eclipse you get an awesome free IDE.
funxus Feb 25, 2004, 08:06 AM The only compiled langauges I've used are VB, Java, Flash and Matlab. VB is the one I know my way around most, but I've recently started using Java too (it's free...). I think VB is nice, because you can get down to start writing the code almost immediately, while in java (and I assume C++) there's a whole bunch of code that has to be written to even make it executable...
Flash isn't really a programming language, but it's possible to make programs for the net using action scripts. I kind of hate it though. Matlab, I did one program in, but the syntax was very similar to other languages and well-documented.
I might have to learn C++ until this summer, but I'm not sure yet. Does anyone have a good link to a "Getting started" guide?
Ohkrana Feb 25, 2004, 10:12 AM There are many programming languages...
As for popular languages
Visual Basic (why oh why???)
Since basic was never designed to be extensible why they came out with VB I'll never know. VB.NET seems to be the next direction. Handy to know because unfortunately it pops up in IT in all sorts of areas.
and the Visual Pinball project was done in VB/VB Script
Visual Pinball (http://www.randydavis.com/vp/intro.htm)
C (procedural language and handy to know especially in GNU Unix circles)
C# (popular depending on you talk to, mix of C and C++)
C++ (Object Orientated - OO)
Java (OO, java is built partly on C++) - this is the one I'd empahsis the most since it's platform neutral and used in all sorts of places.
Pascal (not sure if it's used alot these days)
PHP
ASP
(important with webcontent/forms/databases)
Perl
Ada (common in defense industries and Academia haven't seen it used much elsewhere)
for a long listing of languages...
The Language Guide (http://www.engin.umd.umich.edu/CIS/course.des/cis400/index.html)
Not sure why you ask I assume just out of interest and you thinking of learning a programming language?
In which case I'd say NO save yourself..:lol:
But as a starting point if your new to programming I'd say start with VB a damn painful language I must say.
But it's easier to learn subsequent programming languages once you have already gone through the pain and suffering of learning one already. Many of the concepts and methods are transferrable in OOP (Object Orientated Programming).
As for useful features I'd say probably being able to design and use a form in conjuction with Event driven programming to perform some defined action(s). Which you can do in Visual Basic,Java , C++.
As a secondary point when programming you need to get into the habit of learning and using the TLD (Top Level Design) process because once you get the actual program algorithm right then the rest is just syntax and will save you alot of frustration.
Achinz Feb 25, 2004, 11:07 PM Originally posted by Ohkrana
Not sure why you ask I assume just out of interest and you thinking of learning a programming language?
In which case I'd say NO save yourself..:lol:
Firstly, I am just curious about the level of interest in computing and how many actually do programming here.
My own background is in the application of programming to science having started with Basic (pre-VB) and then Fortran.
Interesting that no mention has been made of Python which was drawn to my attention at the local LUG (Linux Users' Group) by a programmer who swears by it. A comment on this would be helpful.
I like Linux as a "costless" development platform with C, C++, Python, Perl available as Open Source. Hence the lack of exposure to proprietry packages like VB.
bobgote Feb 26, 2004, 12:08 AM Python can be useful, but it is a scripting language as opposed to a programming language least as far as i can tell. you generally use it for quick data entry or interface kind of purposes, rather than making programs by using it. but yes it is becoming more widespread, from my limited experience with it, it appears fairly simple.
Riesstiu IV Feb 26, 2004, 12:09 AM FORTRAN, the only language you need! Actually, I know C and C++.
ainwood Feb 26, 2004, 01:12 AM One thing that makes VB a bit easier to learn is the 'record macro' function in MS Office...
Achinz Feb 26, 2004, 04:46 PM Originally posted by bobgote
Python can be useful, but it is a scripting language as opposed to a programming language least as far as i can tell. you generally use it for quick data entry or interface kind of purposes, rather than making programs by using it. but yes it is becoming more widespread, from my limited experience with it, it appears fairly simple.
It depends on what you mean by scripting I guess. I'm aware it handles word strings well but would think that the power is more general than that.
Yes, compared to C++ it's both simple and flexible (eg in syntax). Compare writing "Hello world" in the two languages.
Aphex_Twin Feb 27, 2004, 12:16 PM C(++), Pascal, VB. Currently, I'm trying my hand at Javascript and plan to take some php lessons
bobgote Feb 28, 2004, 06:29 AM Achinz: Python is not something you'd use to build a decent size application. I've seen it used as an input to enter scenario rules into a simulation engine, when the engine was written in java. it handles the lightweight functionality, not the main program.
Achinz Feb 28, 2004, 03:19 PM bobgate: It seems my LUG programmer mate would disagree with that. Perhaps a refresher from the Python site would clarify things a bit.
bobgote Feb 29, 2004, 09:17 AM haven't used it for a while, but it is certainly not something i'd want to use for anything heavy duty.
Moonsinger Mar 01, 2004, 12:47 PM I use most Delphi on the Windows platform; C and Perl on the UNIX platform.
Achinz Mar 01, 2004, 05:41 PM bobgote: Encouraged to revisit the python site, http://www.python.org/ , I thought it might be interesting to quote what they have to say about themselves in a nutshell:
Python is an interpreted, interactive, object-oriented programming language. It is often compared to Tcl, Perl, Scheme or Java.
Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high level dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, as well as to various windowing systems (X11, Motif, Tk, Mac, MFC). New built-in modules are easily written in C or C++. Python is also usable as an extension language for applications that need a programmable interface.
The Python implementation is portable: it runs on many brands of UNIX, on Windows, OS/2, Mac, Amiga, and many other platforms. If your favorite system isn't listed here, it may still be supported, if there's a C compiler for it. Ask around on news:comp.lang.python -- or just try compiling Python yourself.
The Python implementation is copyrighted but freely usable and distributable, even for commercial use.
It just seems to be more popular on platforms such as Linux than Windows.
Edit: sorry got your name wrong before, bobgote.
bobgote Mar 02, 2004, 07:23 PM those linux people are an odd bunch. I would compare it to the rest of the languages other than java - ie scripting languages. As they said it's useful for making interfaces, but I wouldn't use it for the back end stuff.
GrandAdmiral Mar 03, 2004, 04:32 PM I'm a C++ person. I know Java but prefer to use C++. For something simple I'd rather go with VB.
Achinz Mar 03, 2004, 06:43 PM Originally posted by bobgote
those linux people are an odd bunch. I would compare it to the rest of the languages other than java - ie scripting languages. As they said it's useful for making interfaces, but I wouldn't use it for the back end stuff.
The titles of some papers in recent Pythons conferences might yet persuade you otherwise: ;)
"A Python Plotting Package for Scientists and Engineers"
"Processing And Analyzing Extremely Large Amounts Of Data In Python "
"Lessons Learned in Converting a Large C Program into Manageable Python Modules"
"Computing magnetized plasma equilibria in a tokamak using Python "
yaroslav Mar 04, 2004, 02:34 PM In my work (a very BIG engineering company) we use mainly C and C++, with parts of code in some former-"script"-languages-but-now-powerful-as-any-other-language like phyton and perl, and of course Java.
What do I like the most? Java, but that is my personal taste.
I believe that each language has its own place.. and that includes perl and phyton :D
bobgote Mar 04, 2004, 07:30 PM Originally posted by Achinz
The titles of some papers in recent Pythons conferences might yet persuade you otherwise: ;)
"A Python Plotting Package for Scientists and Engineers"
"Processing And Analyzing Extremely Large Amounts Of Data In Python "
"Lessons Learned in Converting a Large C Program into Manageable Python Modules"
"Computing magnetized plasma equilibria in a tokamak using Python "
you aren't going to convince me otherwise :)
Achinz Mar 04, 2004, 07:42 PM Originally posted by bobgote
you aren't going to convince me otherwise :)
A closed mind ;)
Just that if VB is considered a programming language then the more powerful Python should.
Xerol Mar 04, 2004, 09:47 PM C++, mostly because of the DirectX compatibility. Will try not to use java, because some things just don't need to be made into a class to run...
QB. Can't say much against it, if you look at the environment that it runs in.
http://www.lggaming.com/downloads/cuberace.zip
(Warning: Didn't program in an "exit key", so you'll have to force quit when you're done)
Controls:
8 - Accelerate
2 - Brake/Reverse
4 - Left
6 - Right
Tap keys for best effectiveness.
Basically, what it is, is a "Camera Chase" engine. In this case, the object being chased is the cube, and the camera is following behind. (Note that 'turning' the cube doesn't really turn it, only the direction it's moving. So you could say it's sliding. That's also so that you get a better perspective of what's going on.)
I get about 8-12 FPS on my Celeron 2.6. True P4s run nearly 2x as fast. (Windows 2000 also likes to slow down QB an awful lot. 98 or XP shells are more friendly to it.)
bobgote Mar 04, 2004, 10:14 PM Originally posted by Achinz
A closed mind ;)
Just that if VB is considered a programming language then the more powerful Python should.
it isn't :mischief:
Achinz Mar 05, 2004, 07:32 PM A closed mind or the language?
Well I've been persuaded with this exchange to follow my mate's advice and take up Python, just to show it is ;)
bobgote Mar 06, 2004, 06:59 AM do whatever you want.
but i'd say that c++/c/java are much better to learn because as well as doing the job, they are very widespread. these are core languages, python is good to have as an extra, but not one of the biggies.
Achinz Mar 06, 2004, 06:27 PM Yet :D
bobgote Mar 07, 2004, 01:22 AM yet.
i'm tipping it will be popular, but it won't take business from the others.
Amesjustin Mar 12, 2004, 05:46 PM Visual Foxpro, TSQL, and C#. Learned on VB6, but never used it outside of college.
Padma Mar 12, 2004, 11:25 PM Java, because we have to write stuff that works both on M$ Windows and Unix (Solaris). Also C++, Ada, Powerbuilder ( :vomit: ).
One thing I like about Java is that most of the 3rd-party tools we use have java interfaces/APIs, which makes it easy for a tool-maker like me to extend it for more localized use.
Aphex_Twin Mar 13, 2004, 08:51 AM I'm getting my head around theese dynamic memory trees in C++. I hear there's no equivalent in Java.
Zeekater Mar 13, 2004, 05:38 PM I'm only just starting to learn programming, with Java.
I've heard Perl is much harder and more complicated.
blackhalo15 Mar 13, 2004, 11:13 PM Learning Visual Basic right now. Would like to learn all the C's and Java, simply because I was told to. Correct me if I was misled, but I was told to start out with VB, because it is very easy to learn, then C,C#, and C++, or whatever they all are, because they are the most versatile programming languages there are, and then Java, just because I was told that every good programmer SHOULD know Java.
bobgote Mar 14, 2004, 02:23 AM Originally posted by Zeekater
I'm only just starting to learn programming, with Java.
I've heard Perl is much harder and more complicated.
Java is good to learn on, easy, but widely used. It's a good way to get into good programming habits too (cos of the Object Orientation). And don't worry about Perl, it's scary. It's also used for different stuff, stick with the java for now at least.
Originally posted by blackhalo15
Learning Visual Basic right now. Would like to learn all the C's and Java, simply because I was told to. Correct me if I was misled, but I was told to start out with VB, because it is very easy to learn, then C,C#, and C++, or whatever they all are, because they are the most versatile programming languages there are, and then Java, just because I was told that every good programmer SHOULD know Java.
the java - C++ switch is fairly easy. if you're going to learn C, make sure it's something you're going to use. its probably better to learn C++ if you don't know you'll be using C. once you get the hang of pointers, working out C (from C++) is fairly easy anyway.
i don't know VB as yet, but haven't needed it yet either. as i said before, java is probably the best to learn with.
EDIT: I've also heard that C# is a cheap java knock-off. I don't know how widely used it is...
Padma Mar 14, 2004, 01:46 PM I agree with you, completely, bobgote. :) Java is good to know, and will probably prove more all-around useful to know, than most other languages. C/C++ is good if you have to have the speed it allows, but most apps are not so real-time critical. Very rarely does a program *need* to have the fancy stuff, like dynamic memory trees. (Besides, Java is a "garbage-collecting" language - you don't need to manage your own memory - it does it for you, unlike C/C++, where managing your own memory is a must. ;) )
Originally posted by bobgote
EDIT: I've also heard that C# is a cheap java knock-off. I don't know how widely used it is... C# is Micro$oft's answer to Sun objecting to their "embracing and extending" Java. It is used almost solely by M$-slaves who can't/won't use Java. ;)
bobgote Mar 14, 2004, 08:37 PM Originally posted by Padma
I agree with you, completely, bobgote. :) Java is good to know, and will probably prove more all-around useful to know, than most other languages. C/C++ is good if you have to have the speed it allows, but most apps are not so real-time critical. Very rarely does a program *need* to have the fancy stuff, like dynamic memory trees. (Besides, Java is a "garbage-collecting" language - you don't need to manage your own memory - it does it for you, unlike C/C++, where managing your own memory is a must. ;) )
yeah, not usually necessary to have the extra performance of C++, but it is handy. and java's garbage collection is an excellent reason to vote java :D.
C# is Micro$oft's answer to Sun objecting to their "embracing and extending" Java. It is used almost solely by M$-slaves who can't/won't use Java. ;)
thought as much. I've never met anyone who is a M$-slave tho. most of the people i've interacted with go for the free stuff every time. (Uni and the Defence Dept are tightarses :D). Tho i have just started using LaTeX for word processing (was forced to), and I love it :D
What do you think of Ada? I've just started learning it now for my Real-Time Programming class. I haven't really sat down to work it out properly yet so haven't got the hang of it just yet.
GrandAdmiral Mar 15, 2004, 06:52 PM Calling C# a java knock off is like calling Java a C++ knock off. They all have their differences everyone thinks is critical but none of them are as revolutionary as they are hyped up to be. The whole garbage collection thing is one of the reasons I don't use Java as much as C++. Granted it would allow me to be a lazy programmer which I must admit is nice but thats also something you might want to controll yourself. So for smaller less complex applications Java would be better but that also makes VB an option.
Amesjustin Mar 16, 2004, 01:19 PM While I might agree C# is a partial Java knock-off, it does have quite a bit of unique stuff. It is still not used too heavily yet, but MANY companies are switching to it - including mine. For the most part I like it but I have a few beefs with it and the whole .NET thing in general.
But life moves on, programming languages evolve, and clinging to a dying language like VFP just ensures your career will die with it. C# is a glimpse of the future - having that in your skill set can't hurt.
Melifluous Mar 17, 2004, 05:37 AM Ah fear me for lo it is in COBOL that I program.
Still in use in over 80% of business code and with a prgramming population that is dropping by 13% a year, I think I might have this one sewn up.
However at the current rate (and the fact that I'm only 28) might lead to the rather odd chance that I maybe maintaining the worlds code one day!
Who needs more than 16 colours anyway ;)
Melifluous
Cathy Mar 17, 2004, 07:09 AM I can help you do COBOL! Nice to know I'm not the only one. :)
Achinz Mar 18, 2004, 06:45 PM Really interesting to hear that COBOL is still so relevant today. It seems the niches filled by it and Fortran (now incarnation 95 or later) are special and enduring.
Cathy Mar 19, 2004, 01:52 AM I wouldn't call 80 % of business code a 'niche'.
The main reason you don't hear too much about it is that most of it sits in some mainframe computer, quietly doing it's thing, unnoticed by the public.
Dell19 Mar 19, 2004, 06:20 AM Using and learning Java at the moment because thats what most of the programming modules use. I've also used C recently and VBA before...
ainwood Mar 19, 2004, 02:43 PM Originally posted by Padma
Powerbuilder ( :vomit: ). Hee hee... Our entire production allocation system is in-house built in powerbuilder. When I had zero programming experience I was given the source code listing and asked to provide input to fix problems. I actually found it reasonably easy to 'read'.
Originally posted by Blackhalo15
Learning Visual Basic right now. Would like to learn all the C's and Java, simply because I was told to. Correct me if I was misled, but I was told to start out with VB, because it is very easy to learn, then C,C#, and C++, or whatever they all are, because they are the most versatile programming languages there are, and then Java, just because I was told that every good programmer SHOULD know Java
Visual basic is easy to learn for a couple of reasons: Its very forgiving (cleans-up its own memory, doesn't require variable declarations), it is embedded in MS Office, so you can record macros and see what the code does.
I would suggest that you learn the basics 'properly' though -> for example, ALWAYS declare your variables etc.
damunzy Mar 19, 2004, 04:06 PM Here are 2 good and FREE IDEs for programmers.
First is Dev-C++ (http://www.bloodshed.net/dev/devcpp.html). Make sure you download version 4.9.8.0 (http://prdownloads.sourceforge.net/dev-cpp/devcpp4980.exe) and then patch it with 4.9.8.7 (http://bloodshed.net/dev/devcpp4987.zip). Dev-C++ is good for C/C++.
Second is Eclipse (http://www.eclipse.org). Download page for 2.1.3 (http://download2.eclipse.org/downloads/drops/R-2.1.3-200403101828/index.php) or the latest beta 3.0M7 on this page (http://download2.eclipse.org/downloads/drops/S-3.0M7-200402122000/index.php) . Eclipse is good for Java and more with additional plugins.
Hope this helps.
Achinz Mar 19, 2004, 05:32 PM Originally posted by Cathy
I wouldn't call 80 % of business code a 'niche'..
So what's a niche?
bobgote Mar 19, 2004, 07:39 PM COBOL is always there, so there'll be a steady supply of business. plus, don't you get paid stacks cos hardly anyone learns it?
Melifluous Mar 20, 2004, 02:57 AM Originally posted by bobgote
COBOL is always there, so there'll be a steady supply of business. plus, don't you get paid stacks cos hardly anyone learns it?
:satan:
:smoke:
Melifluous
LordKestrel Mar 20, 2004, 03:05 AM TCL baby. Nothing like some quick and easy TCL scripts. Of course, the usual C/perl/sh will work, but there is something fun about TCL that makes me enjoy it :)
Cathy Mar 20, 2004, 04:43 AM Originally posted by Achinz
Originally posted by Cathy
I wouldn't call 80 % of business code a 'niche'.
So what's a niche?
A niche to me is some small, specialised area. IMHO, 80 % is just too much to fit into the word.
yaroslav Mar 20, 2004, 06:08 AM TCL is good for scripting and for including a language into your application but for general programming.
Achinz Mar 20, 2004, 07:10 PM Originally posted by Cathy
A niche to me is some small, specialised area. IMHO, 80 % is just too much to fit into the word.
Although a business app is a specialised area.
OK, I'll reword the original comment:
"It's heartening to note that both COBOL and Fortran have thrived over all these years in their respective areas of specialised application". ;)
Vancouver 2010 Mar 21, 2004, 01:50 AM What I use:
For Windows: VB
For Linux: C++ or Perl
For Web Pages: PHP/MySQL
I mainly do PHP/MySQL programming than Windows or Linux programming.
bobgote Mar 21, 2004, 02:08 AM Originally posted by Cathy
So what's a niche?
A niche to me is some small, specialised area. IMHO, 80 % is just too much to fit into the word.
but COBOL programmers are a niche field :)
maybe i should learn it. how nasty is it? I have some experience with assembly, enough to know that i hate it :)
Guildenstern Mar 25, 2004, 04:39 PM Recently I have used:
C, C++, Java, Perl, HTML, VHDL, assembly
I have written things in (for classes and amusement):
VB, KornShell, FORTRAN 95, JavaScript, Python, SCHEME, QBASIC, HP-calculator, TI-calculator, NQC
HTML is of course not really a programming language. VHDL stands for "VHSIC Hardware Description Language" (VHSIC stands for "Very High Speed Integrated Circuit"); it is also not technically a programming language, but is used to, er, describe hardware ICs. The computer models for your processor were probably written in either VHDL or Verilog.
NQC stands for "Not Quite C", and is a language designed to be used with the Lego Mindstorms kit. It resembles C in structure and syntax, but has special macros and libraries for Mindstorms robot functions, and can be compiled into S-records which can be run on the Mindstorms microcontroller.
KornShell is pure evil.
SCHEME is a dialect of LISP, and is a very interesting language, structured completely differently from, say, C-like languages.
Achinz Mar 25, 2004, 05:21 PM @Guildenstern
BTW would you consider Python a programming language rather than a scripting one, which was discussed previously.
Guildenstern Mar 25, 2004, 05:45 PM I consider Perl, Python, and KornShell to be scripting languages, though KornShell is certainly more primitive than the others.
I have used Perl and Python to make GUIs before, though. The Python one was just a simple exercise, but the Perl GUIs were rather sophisticated. Drawing the line is a bit tough, but I think Perl still falls on the "scripting language" side (the GUIs were, after all, just a front to make it easier to supply switches and arguments to massive command-line calls).
Python does appear less like a scripting language than others, but I'd still put it in that category.
Padma Mar 26, 2004, 11:10 PM I've been a little out of the loop here for a few days, so let me respond to an earlier post...Originally posted by bobgote
Uni and the Defence Dept are tightarses :DYou're telling me! ;) I have spent 20 years programming for DoD, both as a "blue-suiter" (USAF) and as a contract programmer.
What do you think of Ada? I've just started learning it now for my Real-Time Programming class. I haven't really sat down to work it out properly yet so haven't got the hang of it just yet. I have written some very major apps with Ada. For several years, it was *THE* language for DoD programming. You had to get a waiver to use anything else. It is essentially a superset of Pascal. It is a very sound language, but it is *tighter* than many programmers like: very strongly typed. For instance, a char is a char. It might be *identical* to a 8-bit int, but you cannot manipulate it as an int. It *must* be treated as a char. (Which makes to_upper() and to_lower() really fun routines to write!)
For the record, currently, most of my programming is in Java. I need the cross-platform capability it provides. That, and a *lot* of ant scripting. ;) (Including writing (in Java) my own tasks for use with ant... :) )
Over the years, I have programmed in FORTRAN, COBOL, Ada, VB, C, B ( :eek: ), Assembler, C++, PowerBuilder, Java, and probably a few others that slip my mind. (And yes, COBOL will outlive us all!)
wlievens Mar 29, 2004, 02:44 AM C++ owns all.
|
|