topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Monday March 18, 2024, 9:43 pm
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: Seeking Programming Language To Learn  (Read 15294 times)

raybeere

  • Supporting Member
  • Joined in 2007
  • **
  • Posts: 94
    • View Profile
    • Read more about this member.
    • Donate to Member
Seeking Programming Language To Learn
« on: January 06, 2009, 02:25 PM »
I'm pretty new here, and while I've found I can figure out what is wrong with my computer before tech support does (not that that's such a feat...  ;) ) and have written some pretty complex macros for WordPerfect, DOS batch files, and batch routines for something called Norton Batch Runner (acquired in 1993 with my first computer) most of you have probably never heard of, I have never quite taken the next step and learned a programming language. I bought a kit at one point, think it was Visual C++, but found that language - or perhaps the explanations - difficult to handle. I'm a writer; my brain's OS is hard-wired to English by this point, which means I have to find a language which works in ways I can manage.

I've got a lot on my plate right now, so I'm just mulling things over, but I'm trying to figure out the best programming language to learn, for my own style of learning. In case this helps, I picked up WordPerfect's macro language(s) - version 5.2 through 12 - easily enough. When for a short time I was stuck with MS Word, and tried to figure out the macro language it used, I might as well have been trying to read Sanskrit. Of course, I've never found MS products, "help" instructions, or anything else particularly helpful. It all, to me, seems oriented, more and more, towards "you're just a poor stupid user; why don't you lie back and let Bill decide what's best for you?" - and Bill's opinion seldom if ever suits me.* So I don't know how much was the "help" (You don't really want to do this, it's too complicated, so we tell you as little as we can, ha!) and how much the macro language.

I would like to use something I can write stuff with for my own machine - Windows XP - without too much fuss, and for Linux and a Web environment without too much fiddling. I suppose Java sounds like the obvious choice, except my machine always runs slowly when running Java apps, so I'd rather find something else. I've heard good things about Ruby, but I don't know enough to be sure if it is what I want. I did find one little free "toy" I downloaded that was supposed to teach the basics of Ruby - it was called Hackety-Hack and it seemed to be broken. From what I could see, Ruby did look like a language I might be able to get my head around. But how well will it suit me in other ways?

I'd really appreciate any thoughts on this, so I can take some time and think them over. Thanks.

* I know there are software "holy wars" on many sites, and I'm not out to start one. This is purely my own opinion, offered so you can judge how my mind and preferences work. If you're happy with Windows, that's fine with me, as long as you don't expect me to be...

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Seeking Programming Language To Learn
« Reply #1 on: January 06, 2009, 03:05 PM »
IMHO the documentation for Office macroing (using VBA, Visual Basic for Applications) isn't all that bad - the BASIC language is pretty simple (and while I'm no fan of it, it's adequate for office-style scripting) and it didn't take me long to get some useful stuff going (I've coded a lot previously, but pretty much nothing in BASIC, and definitely nothing for Office). There's only two things that annoyed me a bit:
1) using plural 's' to denote between a single object, and a collection of objects. Yes, this is how it works in English, but a single character can be hard to spot; suffixing "List" or "Coll" (as in collection) would be better.
2) because of the dynamic/variant nature of objects in VB, it can be hard getting the proper context-sensitive help.

If JAVA is too slow for you, you can pretty much rule out Ruby... it's relatively heavy, and doesn't have just-in-time machine-code translation like JAVA does, but is (for now, anyway) run entirely interpreted.

Perhaps you should take a look at Python - it's relatively simple and straightforward, isn't terribly slow :), et cetera.
- carpe noctem

plor

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 1
    • View Profile
    • Donate to Member
Re: Seeking Programming Language To Learn
« Reply #2 on: January 06, 2009, 03:17 PM »
I would recommend Java as a good language to start out on.  It has good tutorials and will get you thinking about lots of good programming things.  Java is object-oriented, which is a paradigm that should be learned eventually I think.  There is somewhat of a learning curve, so if you want something else I would perhaps suggest perl.  There are many people who will tell you that perl is old and dying, but the fact is that people still use it all the time.  It is similar in many ways to python, but I think it has more soul.

Another thing you might enjoy about perl is it is a natural programming language, meaning that code translates easily to English.  It may work better with your brain because of this.

f0dder

  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 9,153
  • [Well, THAT escalated quickly!]
    • View Profile
    • f0dder's place
    • Read more about this member.
    • Donate to Member
Re: Seeking Programming Language To Learn
« Reply #3 on: January 06, 2009, 03:31 PM »
Problem with Perl is that... it's so darn easy writing really ugly gibberish that nobody (including yourself, a couple of weeks later) can read :) - at least that's slightly harder with Python.

JAVA isn't all that bad as an introduction to programming (and heck, it can be used for real-world stuff), and IDEs like eclipse are really nice. But the OP did mention that he tried C++ and didn't grok it, and JAVA is pretty similar to C++. *shrug*
- carpe noctem

app103

  • That scary taskbar girl
  • Global Moderator
  • Joined in 2006
  • *****
  • Posts: 5,884
    • View Profile
    • Donate to Member
Re: Seeking Programming Language To Learn
« Reply #4 on: January 06, 2009, 04:30 PM »
Why not Object Pascal?

Pascal was created for teaching programming and it's easy to learn.

And I am not referring to the old Borland Turbo Pascal, and not even Delphi, necessarily. There are other options that are cross-platform and not a Borland/Codegear/Embarcadero product.

Unlike Perl, which looks like it was created by a space alien to me, Object Pascal looks a lot more like English. That's one of the reasons why I like it so much.

Or how about Javascript? While it will work cross-platform in any modern browser, it's not just for browsers. And you wouldn't need anything to get started other than a browser, text editor, and a good tutorial. You already have 2 of those and are just missing the tutorial.

If you plan on writing for yourself, you have a lot more choices, but if you want to distribute your applications for desktop use, you are a bit more limited, or I should say that it's a little more complicated for the average end user with some languages like Perl, Python, Ruby, etc., and most average people wouldn't bother doing what they would have to do to run your apps.

They would all require the end user to have it installed on their PC, and If they are running Windows, they are going to have to go download whatever you wrote it in and install it before they can even think about running your application.

If you plan on running it on a web server and letting users access it through their browser, that would be different, though.

CWuestefeld

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 1,009
    • View Profile
    • Donate to Member
Re: Seeking Programming Language To Learn
« Reply #5 on: January 06, 2009, 04:59 PM »
This has been discussed around here a time or two, but every time, people find a slightly different way to ask the question, leading to slightly different answers.

One thing you emphasized is that you'd like to be able to read a program more like real English. There's actually a technical term for this: "fluent interface". Most modern Object-Oriented languages enable this to varying degrees: Java, C#, python, ruby, etc. I believe that Ruby goes the farthest in this direction, but the same attributes that give it this advantage also allow it to become quite cryptic if you're not careful. My opinion (which I'll get flack for) is that Java is getting quite long-in-the-tooth, and not quite able to carry innovation into the 21st Century with the foundation it's built on.

So my suggestions would be either C# or python. Both of these languages are at the cutting edge of development, giving you access to the most recent improvements in development technologies. You can get free development environments for either of these. I believe that C# probably has a more mature development community in which you can find books and other documentation, examples, and so forth. But python, being a dynamic language, probably gets you closer to the fluent interface.

Another consideration should be the state of libraries that are available for a given language/platform. There's no point in re-inventing the wheel; you can build your applications much faster if you're able to leverage work that other people have done already. Both C# and python excel in this respect. You can find numerous web sites for each that specialize in the sharing of libraries for most any application you can name.

Edvard

  • Coding Snacks Author
  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 3,017
    • View Profile
    • Donate to Member
Re: Seeking Programming Language To Learn
« Reply #6 on: January 06, 2009, 05:07 PM »
If you're concerned about comprehending the language, I'd recommend either of these two:

-Autohotkey
If you hang around here for any length of time, you'll find out why. It has evolved from a macro/script utility to an almost full-blown interpreted language. Poke around the help file, download a few of Skrommel's toys to inspect and you'll soon have quite the folderful of nifty things, I guarantee.
-Ruby
While not as popular or as well-documented as Python, the two languages have similar modus operandi and is the most "english-like" you're going to get. Add on that it's useful for making nifty web stuff, cross-platform, fully object-oriented, dynamically typed and a bunch of other adjectives I don't fully comprehend.

Have fun!

EDIT: Dang! CW mentioned Ruby before me... Oh well, I have links!  ;D
« Last Edit: January 06, 2009, 05:13 PM by Edvard »

mrainey

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 439
    • View Profile
    • Website
    • Donate to Member
Re: Seeking Programming Language To Learn
« Reply #7 on: January 06, 2009, 08:53 PM »
Here's a code sample for Creative BASIC, the little brother of my language of choice, Emergence BASIC.  The syntax of Emergence is virtually identical.


' Demonstrating how easy it is to create a window in Creative Basic
' also includes a Text Box control to display some text ..
def w:window
def wstyle:int
def a$,newline:string

wstyle = @SIZE|@MINBOX
newline = chr$(10)
window w,0,0,600,400,wstyle,0,"Creative Basic",main
setwindowcolor w,rgb(0,0,40)
centerwindow w

control w,"T,,100,30,400,300,@cteditcenter,1"
setcontrolcolor w,1,rgb(55,255,160),rgb(0,0,50)
rect w,99,29,402,302,rgb(0,150,150)

a$ = string$(3,newline) + "A Simple" + newline + "Creative Window"
setfont w,"Arial", 20, 700, @SFITALIC,1

setcontroltext w,1,a$

waituntil w = 0
END

SUB main
select @CLASS
   case @IDCLOSEWINDOW
      closewindow w
endselect
RETURN


Creative lets you work with an interpreter to get the programming done, then generate a standalone exe for using and distributing the program.  The executable won't be as small or as fast as one created with Emergence, which is a true compiler.

I don't think Emergence BASIC would tie your hands in terms of its capabilities.  You can do some serious work with it.


http://www.ionicwind.com

Software For Metalworking
http://closetolerancesoftware.com

raybeere

  • Supporting Member
  • Joined in 2007
  • **
  • Posts: 94
    • View Profile
    • Read more about this member.
    • Donate to Member
Re: Seeking Programming Language To Learn
« Reply #8 on: January 06, 2009, 09:02 PM »
Thanks, everyone. You've given me a lot of good points to consider. I'd completely overlooked the point about libraries *duh!* which is certainly something I'd want to consider. I don't think I'm ready to reinvent the wheel.

AutoHotKey does look interesting; a lot of the tools created with it look even more so. But the "almost" makes me suspect I'll want to do something it won't allow me to soon enough. I've had that problem with macros and batch files; I even had it back when I was using Norton Batch Runner. You can go pretty far, if you get creative, but there is a point you just can't get past. Or at least I've never been able to.

Beyond that, I'm going to do a little poking around all the suggestions so I can see what looks like my best option. Since I'm interested more than anything in making a few things just the way I want them, the average user doesn't concern me much. I'll make stuff I want to use, release it free (maybe donationware, here on DC, but I wouldn't count on getting much if anything from it) and if anyone wants it bad enough, they can always install what they'd need to run it. I know I would, if I found something I wanted to run badly enough. As it is, I find the things people make because they want to are a lot better than the stuff driven by market research...

My real concern is taking the time to make the right choice for me; I don't want to get pretty familiar with this or that language, then figure out I really wish I'd chosen another one. That sort of thing drives me nuts. Of course, having said that, Murphy's Amendment provides that someone, somewhere, will now begin developing a completely new programming language, tailored especially for me, with the first release timed to occur on the same day I finally figure I've learned whichever language I finally choose.  ;D

Target

  • Honorary Member
  • Joined in 2006
  • **
  • Posts: 1,832
    • View Profile
    • Donate to Member
Re: Seeking Programming Language To Learn
« Reply #9 on: January 06, 2009, 09:31 PM »
since you're already here, you might like to look at the <a href="https://www.donation...index.php?board=77.0">DC programming school</a>

you have the opportunity to attempt a series of challenges in a range of languages - you might find something that appeals this way without having to invest on the off chance that your purchase is going to work for you

with respect to the potential limitations of your chosen language I suspect that this is likely to be an issue regardless of your choice (eventually...).  Pick a likely candidate and see where it takes you - you might be surprised.  If it doesn't work out, just remember what you've learned along the way (it's better to make a start and work it out as you go than it is to worry about how it might end if you do start)

Edvard

  • Coding Snacks Author
  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 3,017
    • View Profile
    • Donate to Member
Re: Seeking Programming Language To Learn
« Reply #10 on: January 07, 2009, 10:22 AM »
AutoHotKey does look interesting; a lot of the tools created with it look even more so. But the "almost" makes me suspect I'll want to do something it won't allow me to soon enough. I've had that problem with macros and batch files; I even had it back when I was using Norton Batch Runner. You can go pretty far, if you get creative, but there is a point you just can't get past. Or at least I've never been able to.

I totally understand and concur; ANY interpreted or script language will have that wall to hurdle, but don't let that stop you. AHK can do amazing things far beyond what batch scripts can do without a whole lot of effort, so it's very much worth having in your "bag of tricks".
I've often wondered how much real code actually goes into all those one-line commands, so I bet a fun exercise would be to pick a language to learn and then learn how to implement some of AHK's tricks with it.

raybeere

  • Supporting Member
  • Joined in 2007
  • **
  • Posts: 94
    • View Profile
    • Read more about this member.
    • Donate to Member
Re: Seeking Programming Language To Learn
« Reply #11 on: January 07, 2009, 07:17 PM »
with respect to the potential limitations of your chosen language I suspect that this is likely to be an issue regardless of your choice (eventually...).  Pick a likely candidate and see where it takes you - you might be surprised.  If it doesn't work out, just remember what you've learned along the way (it's better to make a start and work it out as you go than it is to worry about how it might end if you do start)

This advice has a lot of sense to it - which is why I had to stop and work out why it didn't feel right. I'm afraid I've done something I do all too often. :-[ Only after I begin take the first step, and think things through, do I understand what is motivating me under the surface. Yes, there are a lot of neat little custom tools I'd like to put together - but that isn't what is really motivating me to learn to program. I want to create the ultimate Writer's Workshop.

Yes, I know that's foolish, on so many levels. I already own one of the very few programs I've paid for and never regretted it, specifically designed for writers. When I think of what I'd like to wind up with, the basics are a lot like the title I use now. Heck, I got free upgrades for life, and the best support I've ever hoped for - better than anything else I've ever heard rumours of. And, if one of the experienced coders here mentioned taking on a project as huge as what I have in mind, you'd all tell them they were nuts. With good reason.

I know all that, and I still want to do it. The improvements I'd make would take a really good way to work and make it the only way to work. They're things no one else would come up with. I've got an idea for a program that is nothing at all, in total, like any other program I've ever heard of. The program I use now is a Mercedes - but I want to write one that's a Bugatti. So I've got to figure out the best language for what I want to do. (Yes, I do know it won't be my first project. I may be crazy, but I'm not completely stupid. But I do want to move in that direction as much as I can, and not meander all over the place first.)

wreckedcarzz

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 1,626
    • View Profile
    • Donate to Member
Re: Seeking Programming Language To Learn
« Reply #12 on: January 08, 2009, 01:06 AM »
I started making little scripts in AutoHotkey and worked my way up to complex AHK programs and now do stuff in Visual Basic .NET, going for C# (did Java in school... ugh... no comment) - AHK is a great starting language IMO, and the help files and online documentation are just awesome. You can do a ton of things easily in AHK that are difficult in other languages, too (sending keystrokes to apps/control of the computer, plus the logical syntax allows for simple ways of doing complex things). Only downside is the way the AHK script files are converted to EXEs sometimes triggers virus false alarms :-\ ... stupid AV companies.

Start small, work your way up. Once you have a basis, you can always fall back. Keep going, and once you get into it, it is so enjoyable... :)

MilesAhead

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 7,736
    • View Profile
    • Donate to Member
Re: Seeking Programming Language To Learn
« Reply #13 on: January 22, 2009, 07:42 PM »
@raybeere if you really want to create a large project like a Writer's Workshop you might want to check out programming tools that make it easy to use 3rd party components.  Writing just a plain text editor is very involved.  But if you start with an open source editor component you may find you just need to add the tweaks you want.

I've messed around with a lot of different interpreters and compilers.  One that has served me well for general purpose GUI type programming on Windows is Delphi 5 Professional.  For making Windows Shell extensions, like if you right click on something in Explorer and launch it from that menu, those type of programs, it's tough to beat Visual C++ 6.  For small utilities on Windows AutoIt3 and AutoHotKey are good.

The natural language feel of Pascal is a good point.  If you read books on algorithms it seems like the ones with examples in Pascal are easiest to grasp.

If you look around you can find free basic, assembler, pascal and scripting languages for Windows.  For maximum portability and getting close to the metal it's hard to beat the old standard C.  But I think it's best to grasp programming conceptually first.  That's why I think it wiser to start with something like Pascal rather than something like Perl.

Once you mess around with a few programming languages you see they are all either interpreters or compilers under the covers and do similar things.  Object Oriented and other abstractions have power but I think it's a good idea to do at least one language that's close to the machine.  The code actually has to run on something and you won't appreciate the limitations if everything is a virtual machine.  I started with GWBasic with the line numbers and the whole bit.  But it was easy to learn.  After that it was Turbo Pascal, assember and C.

You may want to check out the library for "Algorithms" by Robert Sedgewick. I'd recommend the one with Pascal implementations.

Also "Algorithms + Data Structures = Programs" by Niklaus Wirth
who invented Pascal.  It was written before Object Oriented Programming, but back then the rage was "Structured Programming" which is like the precursor to OOP.  Still a very valuable book.

I didn't take Computer Science classes so I used the "Spider Web" approach.  If I read an article that was very good and the author mentioned a programming text, I'd check it out.  That's how I heard of authors that are standard in computer science classes like Knuth and Sedgewick.

Follow what you enjoy.  I never used Perl or Smalltalk much because the syntax put me off, but I'm glad I read books about them and messed around with them a little because it increased my understanding of programming languages that I like to use. :)



raybeere

  • Supporting Member
  • Joined in 2007
  • **
  • Posts: 94
    • View Profile
    • Read more about this member.
    • Donate to Member
Re: Seeking Programming Language To Learn
« Reply #14 on: January 22, 2009, 09:31 PM »
Thanks for the info. You've given me a lot to think about. :) I've already noticed most of what's out there seems pretty similar, and I suspect you're right about getting closer to the machine - but I'm not ready for that step yet. :D I want to at least feel comfortable with the idea I can create a program, however limited, before I go that far from shore.

The books you mentioned sound useful; I'll have to check them out. I guess everything looks easier, until you actually settle down to learn how to do it. :-[

MilesAhead

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 7,736
    • View Profile
    • Donate to Member
Re: Seeking Programming Language To Learn
« Reply #15 on: January 23, 2009, 12:24 AM »
Have fun with it.  I have some utilities that I've been working on over years but one of my favorite programs is a little gizmo that I coded in AutoIt3 in a very short time.  It's just a little dialog box with 2 radio buttons for selecting the optical drive, and buttons to open and close the tray.  Really simple, but I like using it. :)

kyrathaba

  • N.A.N.Y. Organizer
  • Honorary Member
  • Joined in 2006
  • **
  • Posts: 3,200
    • View Profile
    • Donate to Member
Re: Seeking Programming Language To Learn
« Reply #16 on: January 25, 2009, 03:48 PM »
If you are looking to get up and running quickly, you can download and install a free IDE for C# from Microsoft.  And I have several flash tutorials at my little corner of DC that will help get you started learning C#.  The C# language takes many of the best innovations of Java and C++.  In my opinion, C# has a somewhat easier learning curve than Java, and a lot less steep than C++.