• Welcome to the new COTI server. We've moved the Citizens to a new server. Please let us know in the COTI Website issue forum if you find any problems.
  • We, the systems administration staff, apologize for this unexpected outage of the boards. We have resolved the root cause of the problem and there should be no further disruptions.

[Semi-OT] What programming language should I learn?

Golan2072

SOC-14 1K
Admin Award
Marquis
I wish to start learning a relatively simple programming language, to an extent which would enable me to write simple CT-related programs such as a character generator and a Striker design program (ala HGS).

My past experience with programming was in the early 1990's, in Q-Basic and Turbo Pascal; I remember little of it, other than the (apparantly antiquated) "structured programming" style.

The options I have in mind are either Visual Basic or Java (though I'm open to suggestions); which would suit my purpose better? By the way, is the Java "compiler" (is there such a thing anyhow?) free as I recall? That'll be an advantages over VB, which I'll have to use my connections to get at a reasonable price.
 
If you're from a Basic background, Visual Basic would probably be easier to pick up. However, you have to pay Microsoft an arm and an ankle (not quite a full leg) to program and deploy. There are learning editions around (usually with books), but you won't be able to compile and deploy code (i.e. you need the development environment to run your program).

If you know C, then Java isn't too hard to pick up - once you get your head around the object oriented aspects of the language. The Java Software Development kit is free and available from Sun Microsystems' website (http://java.sun.com/j2se/). There are several free development environments (I prefer Eclipse - http://www.eclipse.org). There are also tutorials on Java available on the Sun website (http://java.sun.com/learning/tutorial/).

Both are saleable languages. Enjoy learning and create lots of tools for us to use in the community. ;)
 
I'd say if you want to target multi-platform environments then Java is probably a good bet, but if you don't mind staying with Windows then VB would be easier. The only downside to VB is it is supposed to be a 'dead' language ... Microsoft want you to use .NET instead. (Don't be fooled into thinking VB.NET is VB7, its not. Its VB-flavoured .NET.) Personally if you can get a VB6 compiler then I'd be inclined to go that route.

Regards PLST
 
Hi !

Difficult one.
People surely will start argue about that


For both options You presented, You can get the basic development packages as well as a pretty development environment for free:
Java: JDK and Eclipse
VB.NET: .NET SDK and SharpDevelop
So You dont have to pay a penny to program in VB today


In order to really find out, what you like better, just pick a simple programming task and do it in both environments.

In any case You will have to become familar with the programming environment and the libraries of the development kits.
Using SharpDevelop you might choose to program with VB.NET or C#.

As an old VB guy (yeah, hit me) I feel more comfortable with SharpDevelop, which I especially like more than Java/Eclipse for doing GUI and graphics stuff. Anyway you usually could do the same with Java.

Have fun !

Mert
 
Since you know turbo pascal, I would suggest Lazarus.

Lazarus is a full development environment/ide for object pascal.

www.freepascal.org
lazarus.freepascal.org
lazarus.sourceforge.net

It is free. It is a visual design environment. It is cross platform (write one program, tell the environment to create executables for Mac, Linux, Windows, Palm, Zaurus, Game Boy Advance etc.)
It is self documenting (Pascal is great to read).

It comes with complete database connectivity.

Best regards

Dalton
 
Originally posted by Valarian:
If you're from a Basic background, Visual Basic would probably be easier to pick up. However, you have to pay Microsoft an arm and an ankle (not quite a full leg) to program and deploy. There are learning editions around (usually with books), but you won't be able to compile and deploy code (i.e. you need the development environment to run your program).
There's at least one VB book out there (published by Microsoft, called "build a program now with..." - see this link ) that has the full version of Visual Basic Express Edition 2005 on a CD with it. As far as I can see VB Express is a full development environment. The book is cheap too (though I don't think it's a very good explanation at all. Then again, good programming books are very hard to find).

Unfortunately they've turned VB into this horrendous object-oriented language now (I hate those. They make no sense to me whatsoever) :(
 
I may sound like a broken record, but:

Consider JavaScript in a web page.

(NOTE: Java is NOT JavaScript. The two have almost nothing in common other than being decended from the C syntax family.)

Pros:
- If you're reading this, you have everything you need to write it & run it
- Lots of good documentation/samples
- Extremely widely used
- Extremely fast to prototype with
- C-like syntax (semicolons, parens, braces)
- "Pay-as-you-go" model (Don't want objects? Don't use them. Don't want functions? Don't use them. Don't want events? Don't use them...)
- Runs in any web browser on any OS
- Full power of HTML+CSS for display
- Display is "retained mode" (e.g. you don't have to redraw everything every frame)
- Don't need to compile
- Use any IDE you want (Notepad and up)
- Can use object oriented style or not
- Includes geeky things like closures and prototypes

Cons:
- Debugging is painful (use popup windows, output DIVs)
- Variables are not strongly typed (leads to bugs)
- No namespaces
- Object notation is a bit unintuitive (vs. C++/Java/C#, but not as strange as Perl5)
- Using HTML+CSS for UI means learning a lot more technologies
- Interpreted, so not as fast as byte- or native-compiled
- Doesn't easily scale up to large projects (see above issues)
- "write once, test everywhere" (for cross-browser functionality)
- Only HTML+CSS for output (no pixel plotting)

Building an app as a web page forces you to rethink a lot of the assumptions you might have about programming. (E.g. "Hello, world" is a different beast entirely). But the advantages are obvious - suddenly it just works everywhere (once you get the bugs out) and anyone can use it.

These days I use:

- JavaScript for anything I want other people to use, unless it simply can't run in a web page
- Perl for any limited use data processing tools
- C++ for mobile device programming where I'm doing low-level stuff like 3D rendering
- C# for Windows apps and Web services

In other words: the right tool for the job, not devotion to any one tool.
 
Since what you're working towards are hobby projects, you get lots of cool options, and you shouldn't have to pay for anything (except for hardcopy books). Basically, your decision should come down to personal preference and platform.

Platform is your only real technical requirement, so you need to decide up front what operating environment(s) you want to target. I would only go cross-platform (i.e., Java) if it was really important to the project. You might also consider buying a cheap hosting account and go the web application route (i.e., PHP, HTML, CSS) if that better suits your platform target.

Only you can answer the question of preference and style. Most programmers prefer their own sacred cows, and it's hard to know what you really like until you try it yourself.

Fortunately, you can get at least an eval copy of just about any programming framework for free. If the Windows platform is all you need, for example, its hard to argue with the new Visual Studio 2005 Express edition downloads. VB 2005 Express is very nice package and completely free (until next November, anyway).

Also look into the online community support. Lots of good stuff on the web. It's hard to wrong, as long as there is good documentation and/or online support.

As a matter of clarification - if a Windows/VB platform is okay with your needs, don't be intimidated by the Object Oriented stuff. VB.NET still allows you to write apps in the classic structured style, very much like older versions (just with much better library support).
 
If you want to start easy, you could max out your knowledge of Excel's function set -- or some 3rd party spreadsheet like OpenOffice.

If you want something that lets you write in BASIC ways immediately, but has room to grow, I would suggest Perl.

If you want something that's snazzier and maybe even friendlier, I'd suggest Python. But it won't remind you of BASIC.
 
I'm currently working on my C# skills, but I think Python may be the next language I learn. It seems to really by taking off lately. Hopefully that's not just a fad. When Microsoft is compelled to pay attention to an open source language, that piques my interest.
 
i've done all my CT stuff in qbasic

it would be a good refresher for you
before jumping into the more advanced stuff...

unless your gonna take a formal class or something
then a refresher would be pointless...
 
Python is nice, in that it has the built-in GUI stuff that Java and VB have, yet I think it's quicker to get up to speed in than Java or its relatives (.NET).

If you pick the Java route, I'd suggest .NET instead; rumor has it that it's got a vast array of tools and abilities all bundled up into one package. A friend of mine who has programmed Java and .NET says .NET "makes programming fun again".

Disclaimer: I have years of Java experience, but no .NET experience.
 
Python - cheap (free), simple, structured, very word-based-computing friendly (Handles strings and lists in ways I wish would be imported into Basic!)

Excell with VB Macros: Many excellent uses can be made of Excell with VB. No standalones, however.

If you use Mac, TNT Basic is very good and very free.
 
Thanks for the links. I haven't done any programming in 15 years except for Excel. Primarly because I don't have the money to spend on the software. Hopefuly with some of the free stuff you have listed, I can get started again.
 
Starting at November 2006 it is just no longer for free. Perhaps you have to pay a bit then.
But who knows...

Anyway as soon as You register its correctly licensed and can be legally used for anything You want


Besides, I pray, that it does not influence SharpDevelops development too badly....
 
Back
Top