Prog languages (Windows)
Spiral_72
Posts: 791
I'm just curious what y'all would recommend I learn next. I've used assembler, BASIC and C quite a lot in days past on my older machines..... but using those languages in a Windows environment is quite a task and much more involved than I'm interested in right now.
I tried Visual Basic and didn't like it.... at all. Maybe I'm wrong.
I've since started playing with Python which seems powerful enough, but the syntax and the overall annoyance is hard to get used to. Maybe it's just me, but I haven't given up on it yet.
In the newer Windows OS (XP+) what would ya' reccommend for a programming language? I'm mainly interested making games, some utilities and some general processing software (image or collected data).... I may get into machine vision again at some point, but that's a dream.
I tried Visual Basic and didn't like it.... at all. Maybe I'm wrong.
I've since started playing with Python which seems powerful enough, but the syntax and the overall annoyance is hard to get used to. Maybe it's just me, but I haven't given up on it yet.
In the newer Windows OS (XP+) what would ya' reccommend for a programming language? I'm mainly interested making games, some utilities and some general processing software (image or collected data).... I may get into machine vision again at some point, but that's a dream.
Comments
http://forums.parallax.com/showthread.php?t=123974&highlight=android
Now, if you want the application to be fast, not messy (read that as simple install and removal from the target platform), then C++, C# or C is the way to go. There's more up front coding time, but in the long run, the application is better. There's lots of support for C++, C# and C online as well.
Me, I code in either, prefer VB.NET, and can slip into one of the scripted languages as needed.
IMHO
KK
http://www.processing.org/
From their web site: Processing is an open source programming language and environment for people who want to create images, animations, and interactions.
John Abshier
For portable web and console apps Java is a good language. But I don't think there are bindings to the Win32 API, so any GUI you write would use Swing which is dead technology.
Now C# and Java are amazingly similar languages and it is fairly easy to switch between them. In fact my opinion is that taken together C# and Java are one more programming language than the world needs. But Sun's lawsuit against MS pushed them into creating C# and thus killing Java on the Windows desktop.
The scripting languages (Ruby, JavaScript, Python) are also something you should learn because their ability to dynamic bind and create types on the fly is worth knowing.
I also have a very specific way of working in VB. I use it more like a DOS BASIC than for its better known capabilities. I have coded everything to the API, without plugins, including especially serial port and TCP/IP access. My executables need only the VB6 runtime, which has been present from the factory on every computer I've seen since 2001 or so. This means you need no installer; you can run one of my apps directly off of a USB drive, or drop the backup directory onto a new machine, make a shortcut to the .exe, and it will work.
Sure you could use Ruby or something else that existed before Python, but Python seems to have gotten more right than you average software.
There may be certain task - such as graphic and video display - that might be easier in another language. But nearly all of them play well with Python. So I consider it a core language resource.
I use a 'sub-set' of Visual Basic for micro-controllers and it took forever for me to get used to it. But since I have the hardware, I live with it.
Try getting some good Python books. O'Reily has several and you buy two and get one free, plus free shipping in the USA.
I have similar feelings about white space, but I try not to think about it too much because I like Python and Spin otherwise.
I didn't really have a problem with spacing in Fortran - but it was the first language I learned (on punched cards).
One thing I really like is it compiles to an executable without the need of some framework installed.
With that said all of them including Delphi will have some issues if a large enough population of people install your app on there pc.
The cost of Delphi has moved up quite a bit recently and for someone just starting out and only wanting to learn the Microsoft Express Editions are free.
Tom
I was a fan of Delphi years ago (when it was a lot more affordable) but I think they really started to emphasize the data base capabilities too much. Turbo Pascal was the primary language I worked with before that. I'm sure I still have the original paperback manual for Turbo Pascal (v2, I think) around somewhere.
The lead architect for C#, Anders Hejlsberg, wrote the original Turbo Pascal and architected Delphi.
So, which part didn't you like? My little annoyances are:
* Setting up (hello world does take a bit of time)
* Revisiting an existing program (open vb.net, open a new program, save it, close down vb.net, search the sub directories it will have created for a .sln file, then in future, just double click that .sln file)
* Getting toolbars in the right place (and vb.net occasionally loses the info so you have to put them back)
* The trillions of lines of code that are incompatible with vb6 (as localroger suggests). I found this site which helped a lot in the transition from vb6 http://www.pharfruminsain.com/Teach/VB.NET.aspx
* The fact I've never been able to get it to work on one of my slower xp machines (800Mhz)
* I can't seem to be able to change a pixel on a picturebox. I've searched the internet high and low on this one, and fundamentally, graphics on vb.net are a lot harder than in vb6
On the plus side, vb.net is free. It has autocomplete on so many things. It puts in whitespace and indents correctly, even when you copy in raw text from elsewhere. It is starting to merge C and Basic (I disliked this intensely at the beginning but I've changed my mind now. Indeed, I'd like to see Basic able to handle { and other C syntax). There are vast libraries of code out there, and this is particularly useful when you want to do strange things like talk to DOS programs via Telnet. It has some nifty shortcuts, eg saving the entire contents of a textbox to a text file in one line
RichTextBox1.SaveFile("C:\" + Myfile, RichTextBoxStreamType.PlainText)
I guess the best thing I like is that I always seem to be able to find an answer in someones code on the internet eg http://www.planet-source-code.com/
For example, in a windows form you can use Tab to move between objects like buttons and text boxes. How do you then use Tab within a text box as a proper Tab? I had no idea, and I certainly could not find the answer in the Help, but a quick search of the internet revealed the answer to be
RichTextBox1.AcceptsTab = True ' so tab stays in the rich text box
I very much suspect that much of the above is true for the other vb.net family - C, Java etc.
Revisiting an existing program (open vb.net, open a new program, save it, close down vb.net, search the sub directories it will have created for a .sln file, then in future, just double click that .sln file)
I had a similar problem once when I forgot to un-check SourceSafe on a VB6 install. God, what a nuisance. What kind of braindead moron puts all the forms in one directory, all the modules in another, and so forth? Keeping them separate is what the extension is for. And FSM help you if the .scc file, which is IIRC in Microsoft Access format, gets corrupted, and since it's an Access database it is GUARANTEED to get corrupted eventually.
And try getting rid of it. You can't. I had to completely un-install Visual Studio with add/remove programs and re-install it from the CD set to get rid of SourceSafe. Fortunately, I keep my projects in their own directory trees, like a normal person would, off of root, so they weren't affected by this.
I thought Java was web type only??? Hmmm, undoubtedly shows my ignorance.
I guess I've been out of programming way too long. The last time I did any real stuff was on a 486 probably. Supposedly now they have pipelines (Think that's what they're called) and a lot of intricacies that I don't understand to use assembler. Too bad though, I suppose assembler is dead except for lightening fast inside loops.
I finally got a Python program to work Saturday night.... FINALLY. It seems so stinking difficult though.
http://blogs.embarcadero.com/nickhodges/2006/08/15/26687
Even though it say zip for each of them they are not , just click on each to watch .
The Turbo Delphi product mentioned is not avaiable as far as I know but all the present versions of Delphi are the same, with additional advanced features.
Tom
Visit http://processing.org.
And if you want to program for cell phones and Android? I think Java is it for that?
And it seems to me Android is a hot new market?
I should think someone young would want to see where things are heading, then learn whatever languages are probably going to be used in the future.
I did this in the 80's. It seemed to me at that time the Microsoft operating system and C was the wave of the future, so that is what I spent my time learning. Glad I did!
And before that I spent no time learning about vacuum tubes in electronics. Instead I learned about transistors and integrated circuits. Glad I did that too.
So if I were young now, I would be asking what will be in the future? And what languages will these things use? Then learn those languages.
If you know C, C#, etc., then Java is not a big change. If you know Java, then like-wise, C is not a big change (except for compiling/assembling).
The real issue is if you a writing for multiple platform deployment, and if pure execution speed is an issue.