Home | Blog | Software | Reviews and Features | Forum | Help | Donate | About us
topbanner_forum
  *

avatar image

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

Login with username, password and session length
  • December 04, 2016, 08:23:19 PM
  • Proudly celebrating 10 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: Programming in general...  (Read 3381 times)

Edvard

  • Coding Snacks Author
  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 2,888
    • View Profile
    • Donate to Member
Programming in general...
« on: August 11, 2005, 04:13:16 PM »
So, I was just wondering...
I assume most of the folks haunting this board are either curious about what 'programmers' do, have done a little here and there and some are real 'Coders'. So, on the topic of programming in general, where's the best starting-place for beginners? What's free and what costs a lot and what's the heck difference anyway? How does scripting differ from interpreted? What's high level vs. low? What are some folks' experience with say, Delphi vs. Java? And fer Peet's sake, what in a pig's eye is .NET?? We've all seen by now what can be done with a fairly full-featured scripting language, but whats below the surface that might make C++ or some other more in-depth tool any more rewarding? And why the snobbery? Is Assembly really all that hard?
I'm not really asking these for my own curiosity, just that the thread on scripting utilities started by zridling took on a tangent that just left me wondering at the fact that we have a bunch of capable coders hanging around with a bunch of curious potential acolytes waiting for the invitation through the blue scr... erm, door. Is there a website or forum on another board where these and related questions are answered and discussed, or can something be set up here at DonationCoder? (I have no idea how much forum bandwidth costs, and no use being redundant...) Just wondering...

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 36,406
    • View Profile
    • Mouser's Software Zone on DonationCoder.com
    • Read more about this member.
    • Donate to Member
Re: Programming in general...
« Reply #1 on: August 11, 2005, 06:39:02 PM »
those are definitely some broad questions.. i'll try to answer a few and others can jump in.

first, there are very very few computer languages that don't have free tools for programming in them.  c++, perl, pascal, python, basic, php are all languages with free compilers and IDE's (interactive development environments).

so money is not an issue; although some of the commercial development environments can make life easier.

a low-level language is closer to the simple instructions that the computer understands.  assembler is the lowest language anyone programs in today - there you would expect to write many lines of code to do even the simplest thing, but you would have complete control over everything and could expect to produce tiny and superfast code.

the higher the level the language, the more stuff will be taken care of for you by the language, so you can build bigger programs faster.

is assembly really that hard - my favorite programming quote goes like this "no one should be allowed to program in assembly"

those who program in assembly now do it almost exclusively just because they love it.  it's like a puzzle.  but its not for the faint hearted and its very time consuming to make a big program in assembly.  and a nightmare to maintain.

.net i'll let you look on the web for.  it's a microsoft invented class of languages and ways for them to talk to each other.  its also microsoft's attempt to compete with java in terms of a platform neutral web-friendly environment.

scripting languages are generally interpretted - meaning they are not compiled first into machine language for super fast execution.  this makes them generally slower for high-cpu demand tasks, but more flexible and easier to start with. (though there are subtle issues about just-in-time compilations that are starting to blur the distinctions).

the best way i can explain it is that a scripting language is a high-level language designed to let you very rapidly and easily write small utilities.  but for big full applications they are poorly suited, because of speed, resource use, and most of all because they rarely promote structured organized object-oriented code, which is important for big projects.

if you want to really learn the art of programming, i am a huge believer in object oriented programming, and thus i would suggest a language like java or c# (.net).  just because those are relatively complete, clean, high level languages.

i myself was raised on c++ so that's my native language, and it has some real strengths, but it is also burdened with legacy issues and confusing contradictions.

so if you want to write little scripts then use one of these scripting languages, etc.

if you want to make real windows applications quickly without learning the real deep concepts, then try a Rapid Application Development language like Visual Basic or Delphi.

if you really want to learn what true serious programming is all about, then pick an object-oriented language like java or c# and prepare to spend some real time learning.

Edvard

  • Coding Snacks Author
  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 2,888
    • View Profile
    • Donate to Member
Re: Programming in general...
« Reply #2 on: August 12, 2005, 07:04:19 PM »
Boy, you ask a question, you get answers... Sweet! Thanks for resurrecting the programming posts, those will help. As I said in my original post, these questions were less for myself and more to encourage those who, because of Coding Snacks, are realizing that a Useful App doesn't necessarily take months of development, a Ph.D. in Super-Genius Code Munching, hundreds of dollars worth of Microsoft [insert programming language here] Studio software, etc.
What's needed is a good place (websites, books, etc.) to start learning the basic concepts that all software is based on, like variables, statements, for/next and if/then loops, etc. Then, where to go from there. I learned at the beige keys and spiral-bound Manuals of Apple IIe's and TRS-80's (Yeah, I had to chase the trilobites off every morning before class, too :)) I'm still learning today even in the depths of an AutoIt help screen and I don't think that's a bad place to start.
So, to the new folks wanting to 'get their feet wet' I say come on in, the water's fine. It isn't as hard as it looks really, and the more you learn the less math it gets and the more art. Go ahead and download Autohotkey or AutoIt and write a few scripts, there's some great stuff to be learned there. When you're ready for more, go to thefreecountry's page of free compilers and programming tools. There's a real can of worms waiting there, and it's all free. Once you move on to something C-flavored, I'm sure Mouser will be here with some tips and pointers as well.
The only (relatively) hard part IMHO is the funhouse maze that is the Windows API. I converted the old 95/NT WinAPI help file to RTF and it strung up to 5000+ pages before I decided I couldn't just print out a hard copy. (Script languages protect you from such horrors so don't freak out just yet...)

On a (not-so-)different note; Mouser, the more I learn about Assembly the less afraid I am. The community for those assemblers still in development are very active, the assemblers are getting more powerful and there are IDE's and libraries and even OOP and 64-bit support. There is also a High Level Assembler project that looks to be VERY nice in terms of ease of learning, power and speed. I just downloaded RadASM, Fasm and HLA. We'll see how much Assembly I can learn on my lunch hour at work!

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 36,406
    • View Profile
    • Mouser's Software Zone on DonationCoder.com
    • Read more about this member.
    • Donate to Member
Re: Programming in general...
« Reply #3 on: August 12, 2005, 07:09:55 PM »
if you want to play with assembly,
we happen to have TWO real assembler pros here: jibz (one of our columnists) + boro.

and they can answer any assembly question you can dream up.

want to see some insanity, check out some of bor0's assembly programs here:
http://www.dcmembers.com/bor0

youll find [ASM Sources] for :

bcrypt.zip // basic crypt algo.
cddisabler.zip // basic API hooking.
google.zip // google search application.
mousepos.zip // reads/sets mouse position and can read asterisks (*) as well.
osinfo.zip // displays basic information about your OS.
strrip.zip // audio stream ripper.


zridling

  • Friend of the Site
  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 3,292
    • View Profile
    • Donate to Member
Re: Programming in general...
« Reply #4 on: August 13, 2005, 02:46:33 AM »
[Edvard]:Go ahead and download Autohotkey or AutoIt and write a few scripts, there's some great stuff to be learned there...

I've been learning very small bits with AutoHotkey and am loving it. I'll never have the brainwidth for programming (nor am I interested in that angle), but scripting something that works is a lot of fun. Heck, I'd pay just sit and watch SKrommel play around with AutoHotkey for a day. Like yourself, Edvard, I encourage even those who are the least bit curious to dip their toe in the scripting waters. It's a great step toward the deeper waters.

Edvard

  • Coding Snacks Author
  • Charter Honorary Member
  • Joined in 2005
  • ***
  • Posts: 2,888
    • View Profile
    • Donate to Member
Re: Programming in general...
« Reply #5 on: August 15, 2005, 03:14:58 PM »
And speaking of deeper waters, I've noticed a difference in the syntax between AutoIt and AutoHotkey;
AutoIt seems to follow a more Basic-like structure. One statement after the other.
AutoHotkey code looks (if you squint a bit) more structured like the higher-level languages. Squiggly brackets (what are those called, anyways?) at start and end of loops and subroutines, etc. Learning to script like that might prepare one for coding similarly.