Programming

Joined
Jan 16, 2006
Messages
138
Reaction score
1
Points
18
Location
Scotland/Aberdeen
Your Mac's Specs
iMac G5 - iPod Touch - iPod Video (30GB) - iPod Shuffle 2nd Gen - Airport Extreme&Express
- sorry if its in the wrong place I didn't know where to put it -

Anyway. I'm a 15 year old kid who is on a mission to learn some sort of programming. I know HTML and have looked at visual basic at my school.

I was wondering if anyone knew off any programming launage that would be ok for a 15 year old. I would be interested in C and C++ but arent they abit to advance.

Anyway it would be good if someone could direct me to a website with tutorials on it.

I use a Imac G5 (not intel)

Thanks in advance

WizzKid
 
K

komo

Guest
what kind of "programming" do you want to get yourself into? web programming or desktop programming?
if it's web programming, starting with PHP won't be painful. it has so many resource out there on the web.
if you want to play with desktop programming, you better learn Java and/or Objective-C, cause both of them are integrated with OS's XCode
 
OP
WizzKid
Joined
Jan 16, 2006
Messages
138
Reaction score
1
Points
18
Location
Scotland/Aberdeen
Your Mac's Specs
iMac G5 - iPod Touch - iPod Video (30GB) - iPod Shuffle 2nd Gen - Airport Extreme&Express
any usueful links?
 
OP
WizzKid
Joined
Jan 16, 2006
Messages
138
Reaction score
1
Points
18
Location
Scotland/Aberdeen
Your Mac's Specs
iMac G5 - iPod Touch - iPod Video (30GB) - iPod Shuffle 2nd Gen - Airport Extreme&Express
L

Logan

Guest
I started programming at 12. I stumbled upon this "Welcome to VC++" book that really was designed for someone who was already programming in C and was learning C++.

Just with that book I figured out the structure, essentials... it was a major headache and I thought C++ was too hard for me.

I stumbled upon VB around your age. Really, at your age, if you have the motivation, you can at least get familiar with any language. The key thing is to decide now what seems like the best solution to what you think you'd like to do a long time, then just stick to it. Have fun. And enjoy the benefits of being young and knowing a programming language (Everyone calls you a genius, hah). If you do it as a hobby and have time, you'll pick it up extremely fast and constantly be learning all the junk you'll need to just get certified in it.. once you can afford it.

This is how I relate a lot of the software languages: Let's say programming is like cars. You're trying to get from point A to point B.

Assembly: You design the car, the wheels, the fuel system, the smallest details and create the perfect machine. Some times WAAY too much work to get anything done, but it's a piece of art whatever is written in it properly.

C++: You create the most efficient machine available. You tweak it to perfectly fit your personal desires, and it runs flawlessly. It takes you a little while to design the car but it's well worth the investment once everything is said and done.

VB: You take someone else's chassis and engine and create a simple frame. You customize the apolostry, paint job.. and throw in a couple tweaks here or there. You get it done fast, and it may be a little crude. But it'll get the job done.

Java: You make a economy car. The car is built to where it runs on different fuels, is highly compatible and can get around in various situations. The problem is you tend to not be as efficient as an asm/c++ car, but especially with how java has been improved lately this may (or may not) be a great investment to the future. (I keep hearing lately that benchmark tests on java are competing with C++ written for the OS!!)

In my personal life, I have found VB the great choice. Sure my code isn't as flawless as C++, nor am I as compatible as Java, but when someone wants a program I can whip it up in surprisingly fast timing. Other programmers dislike me usually for writing in VB, plus I can only write Microsoft Windows apps (Which is annoying when you like to run OS X and other OS's), but man it's so freaking easy to learn.

If you want I suggest... I say C++. It's bottom line the biggest of all languages. You can take what you know of C++, go to any operating system, learn the SDK/framework and you can program on all platforms. It's available on all flavors.

Also C++ is the basis of all other programming languages usually. So you can take C++, and pick up Java.. PHP, anything really.. and you'll figure it out in no time just with the knowledge you have of C++.

But it's also one of the harder languages to learn. Assembly I don't suggest, it is getting outdated and is very situational when you want to use it.

Java I like and dislike.. mixed feelings really.. in the long run, I DISLIKE IT because of silly things like java beans... JUST THE NAME ALONE ugh. lol.

As far as web programming goes, if you learn software you will think web programming is a joke in difficulty.

Anyways, play around with all and see which language makes the most sense to you.

And when you find it, do this:

1) Go to the library, find a "introduction to X language" type book, or a beginner book. Find an author that makes sense to you. Don't fret if some books don't make sense, some people just can't teach well.

2) Find a forum. Once you start reading and learning the book, use the forum for those nasty questions that arise. Most programming forums are pretty nice to beginners, as long as you're giving a real effort to learn it.

3) Have fun.
 
OP
WizzKid
Joined
Jan 16, 2006
Messages
138
Reaction score
1
Points
18
Location
Scotland/Aberdeen
Your Mac's Specs
iMac G5 - iPod Touch - iPod Video (30GB) - iPod Shuffle 2nd Gen - Airport Extreme&Express
wow thanks logan - I really want to learn more VB at home but I dont have a windows computer :(
 
K

komo

Guest
WizzKid said:
wow thanks logan - I really want to learn more VB at home but I dont have a windows computer :(
if you really want to learn programming in your mac, learn Cocoa instead. i think what Cocoa to MAC OS is very much like VB to Windows.
 
Joined
Jun 25, 2005
Messages
3,231
Reaction score
112
Points
63
Location
On the road
Your Mac's Specs
2011 MBP, i7, 16GB RAM, MBP 2.16Ghz Core Duo, 2GB ram, Dual 867Mhz MDD, 1.75GB ram, ATI 9800 Pro vid
WizzKid said:
wow thanks logan - I really want to learn more VB at home but I dont have a windows computer :(

Realbasic is suppose to be VB like. In fact they have tools to import VB projects. You can find out more at http://www.realsoftware.com/ where they will also sell it to you. They do however have an entry level cost and a pro cost. The pro toolset allows you to compile on one computer for the other supported systems and has database support. You don't need that now.

I haven't used it yet. My interest is in creating a cross platform app and this looks like the tool I would use, if I don't get too side tracked by my current Cocoa interest.

As far as picking something. You need to decide if you want to code for the desktop GUI environment or something else. You can learn alot of programming skill from any language you pick. The basics cross all languages.

You might be able to pick up Cocoa, but a bit of programming experience is advisible. You could pick up an introduction book to C and use OS X to learn that first. Libraries are great places. I learned Apple // assembly language by checking out a book from the library, oh so many years ago. Hmm. Before you were a twinkle in your mom's eye. ;)

Another tool to consider is Applescript. There are one or two good books on it. It would give you the basic skills to move forward.

What ever you choose, remember it takes some dedicated time and will cause you some frustration. But when you complete a project, big or small, you'll enjoy the accomplishment. It's neat to say 'I built that'!
 
L

Logan

Guest
Awesome, thanks for the RealBasic reference. I'll be checking that out.

and cocoa too.
 
L

Logan

Guest
RealBasic

So I tried out RealBasic. Made a simple program,

OSX: (source)

osx0iz.jpg


WinXP: (source)

winxp8ji.jpg


Linux and Wine (Slackware with KDE) (source)

slax0fh.jpg


Looks like the Linux compiler is just a GTK+ 2.0 conversion, it has a Visual Basic to RealBasic converter... I'll play with it more and see how well it does more complex programs. Fun little tool though!

Cocoa is very C++ looking. I'll have to sit down more to figure it out properly.
 
OP
WizzKid
Joined
Jan 16, 2006
Messages
138
Reaction score
1
Points
18
Location
Scotland/Aberdeen
Your Mac's Specs
iMac G5 - iPod Touch - iPod Video (30GB) - iPod Shuffle 2nd Gen - Airport Extreme&Express
thanks for everything, and reallbasic seems for me but ill look at it for a wee bit more before i buy it!!!
 
L

Logan

Guest
For my quick simple example, here's the source

I created the static text that contains the text you read. In VB this object was called Labels, but the difference is minor enough I'm not really concerned. The properties closely resemble VB also.

object Timer1, with a behavior property tweak of 500 period (default: 1000)
(As per VB, this object property was called Timer1.interval, they changed it to period)

(1000 represents the delay before it runs the code, so every 1000ms (1 second) it would run the given event)

I created a Progress Bar action. progressbar1 kept it's default values, where justlike VB you have minimum and maximum to set your range of the progress, and also value which is it's current value.

The code for Timer1's Action_Sub is:
Code:
  progressbar1.Value = progressbar1.Value + 5
  if progressbar1.value = 100 then
    progressbar1.value = 0
  end if

So what does it do? it simply makes the progress bar progress every half a second by 5%. If the progress gets to 100% it resets it to 0%.
 
L

Logan

Guest
My big Q & A about RealBasic:

1 Q) Does it support custom API manipulation on multiple platforms, and can you create platform dependant code routines?

2 A) Platform API's

API usage is different in REALbasic than in Visual Basic. REALbasic is richer due to its support for Windows, Linux, Mac OS X and Mac Classic. Just as you use a UDT in Visual Basic, you can use a Structure in REALbasic to define a custom data structure for use with the Declare statement. You will need to do some homework to ensure there is a replacement for your target OS. I suggest carefully thinking about why you are using an API call. In some cases an API call is no longer necessary because REALbasic includes support for the desired feature within the REALbasic class framework itself.

However, you should feel comfortable that you can mix and match platform-specific code using REALbasic as shown below.

#If TargetMacOS Then
//Mac specific code here.
#ElseIf TargetWin32 Then
//Windows code goes here.
#ElseIf TargetLinux Then
//Linux code goes right here.
#EndIf

2 Q) Does it support ActiveX Controls? This was a feature that made VB actually shine with simplicity and power.

2 A) Both [VB + RB] support ActiveX controls or OLE (Windows only!), but REALbasic also supports cross-platform "Plug-ins." Since Mac and Linux do not support ActiveX, ActiveX controls will not port to other operating systems, even though they will port to REALbasic Windows builds.

I keep seeing more and more positives about this OS. If anyone is interested, I can start writing a review about it in a topic on these forums. Or I can just blog it I suppose.
 
Joined
Jun 6, 2006
Messages
1,153
Reaction score
94
Points
48
Your Mac's Specs
MacBook 2.0GHz White, 512MB RAM, 60GB HDD
Logan said:
If you want I suggest... I say C++. It's bottom line the biggest of all languages. You can take what you know of C++, go to any operating system, learn the SDK/framework and you can program on all platforms. It's available on all flavors.

Also C++ is the basis of all other programming languages usually. So you can take C++, and pick up Java.. PHP, anything really.. and you'll figure it out in no time just with the knowledge you have of C++.

Just a clarification, really. C++ is most certainly not the same on other platforms - the APIs each platform uses vary considerably, and the different compilers can have many different quirks and defficiencies.

I think you were specifically thinking of C, which is what most operating systems are written in and has been properly standardised for so long that it pretty much is cross platform compatible (as long as the libraries you use are available - open source ones usually are).

Don't worry, there is a reason for this beyond nit-picking! The thing is that C++ is a set of object oriented extensions for the C language that has been butchered over time by different companies. There is another set of object oriented extensions to C that is usually considered more stable and compatible; Objective C.

The point here is Mac OS X, especially Cocoa apps, are written in Objective C, not C++. Windows primarily uses C++, and other unix variants use a mix of C, C++ and Objective C. Xcode supports writing apps in Objective C and Java for Cocoa out of the box, so it's probably a good place to start for GUI apps on Mac OS X.
 
L

Logan

Guest
Thank you for the clarification cazabam. I was trying to refer on my previous post C++ as the "general generic Object-Orientated C programming language" but when you're just starting, you tend to just see:

The letter C.

Maybe I should just refer to all the different languages as C*. Good old wildcard to include ALL available "flavors" of C*. There's SO many ways to use C*, and that alone should tell you why this concept and structure is like ESSENTIAL and fundamentally the building block for so many other languages it's rediculous.

And to clarify what I meant on my post, I meant you can take what you learn on any flavor of C*, understand the differences between it and another OS's C compiler, and you most likely can start programming on it. It would be easier to learn another C when you touched one C*, than it would be to come from let's say.. Java, VB, assembly, and had to learn it. That was my comparison.

Another example, for those who don't follow my multiple C references:

Imagine learning C as learning American English, you may not be able to go to England and blend right in, they use it differently and have accents and some times entirely different sentence structures/greetings, but fundamentally the language is built the same.

Now imagine java as spanish, the transition is probably going to be harder from spanish (java) to english (C*), than from one form of english (C) to another form of english (C*).

That was my big point on the C topic and the differences between the "flavors".

<rambles on until death comes to him> Hehe :)
 
Joined
Jun 22, 2007
Messages
347
Reaction score
2
Points
18
Your Mac's Specs
iMac (27 inch, Late 2012), Processor: Core i5, Memory: 16GB 1333 Mhz DDR3 running MacOS Catalina
I was interested in learning a programming language and still am... I looked into alot of languages including C++, Perl, VB & Assembly..

In the end I decided that since I was going to use Mac for the rest of my life, ;D , I needed to learn something really unique and that a few peoplee knew...
A friend of mine was good at NT scripting for Windows and I soon found out Applescript.

Considered the most powerful scripting language out there, Applescript rose from its humble beginnings to become something that one can use to script certain applications or create an entire new application altogether with its own GUI.

I bought a book on it... (title will be posted later) and I'm currently learning it. I decided to take a break from it and learn some CLI (command Line interface... equal to Windows DOS or command prompt).
By learning some commands and being more familiar with the mac OS system, it would be easier to learn the language and create applications.

In choosing a language, learn something that will benefit you in the future.
 
Joined
Nov 20, 2007
Messages
9
Reaction score
0
Points
1
Location
Dublin, Ireland
A lot of people are suggesting C++ without really thinking about the woe this entails.
Firstly, C++ is NOT automatically the most "efficient" programming language, whatever that even means (are you planning on using it just to write mathematical simulations that run for hours/days/weeks? or a high framerate 3D game?).
Secondly, it is a horrible, painful language, with a high likelihood of scaring off newbie programmers with undiscovered talent. Needing to explicitly manage memory and be careful enough with pointers to avoid undefined (maybe crash, maybe just invisible corruption of program data leading to hours of confusion) is not what a new programmer needs.

I started programming with BASIC on the C64 years ago; a really bad implementation it was. Then I took a break for a year or so and eventually moved onto GFA Basic, a structured BASIC on the Atari ST. This is what started the chain reaction which helped me get the 'knack' for programming over time, and to love it too.

To any newbie programmers, I would say there is absolutely no good reason at all to choose C++ over a nice, well-designed higher-level language like BASIC, as long as the implementation is decent and useful APIs (libraries) are provided.

Do not fall into the trap set by the semi-novice popular crowd of selecting C++ merely because it is so popular. I've used it for about 9 years and I don't like it. I still don't understand probably more than 50% of the language, because it is so ridiculously broad and so many features are duplicated.
Also, the fact that writing an application in C++ takes much longer (and causes more pain) than in many other modern languages is significant. At the moment, I'm learning Eiffel and enjoying it, but there's other good choices out there.

Have a look at the C++ FQA for some other reasons to steer clear!
And if you're really concerned about "efficiency", rather than just some invisible ideal for the sake of it, have a peek at the computer language benchmarks game. C++ can be fast, but it's not really that much faster than its competitors. Note that C tends to consistently beat everything, of course...
 
Joined
Jun 22, 2007
Messages
347
Reaction score
2
Points
18
Your Mac's Specs
iMac (27 inch, Late 2012), Processor: Core i5, Memory: 16GB 1333 Mhz DDR3 running MacOS Catalina
A lot of people are suggesting C++ without really thinking about the woe this entails.
Firstly, C++ is NOT automatically the most "efficient" programming language, whatever that even means (are you planning on using it just to write mathematical simulations that run for hours/days/weeks? or a high framerate 3D game?).
Secondly, it is a horrible, painful language, with a high likelihood of scaring off newbie programmers with undiscovered talent. Needing to explicitly manage memory and be careful enough with pointers to avoid undefined (maybe crash, maybe just invisible corruption of program data leading to hours of confusion) is not what a new programmer needs.

I started programming with BASIC on the C64 years ago; a really bad implementation it was. Then I took a break for a year or so and eventually moved onto GFA Basic, a structured BASIC on the Atari ST. This is what started the chain reaction which helped me get the 'knack' for programming over time, and to love it too.

To any newbie programmers, I would say there is absolutely no good reason at all to choose C++ over a nice, well-designed higher-level language like BASIC, as long as the implementation is decent and useful APIs (libraries) are provided.

Do not fall into the trap set by the semi-novice popular crowd of selecting C++ merely because it is so popular. I've used it for about 9 years and I don't like it. I still don't understand probably more than 50% of the language, because it is so ridiculously broad and so many features are duplicated.
Also, the fact that writing an application in C++ takes much longer (and causes more pain) than in many other modern languages is significant. At the moment, I'm learning Eiffel and enjoying it, but there's other good choices out there.

Have a look at the C++ FQA for some other reasons to steer clear!
And if you're really concerned about "efficiency", rather than just some invisible ideal for the sake of it, have a peek at the computer language benchmarks game. C++ can be fast, but it's not really that much faster than its competitors. Note that C tends to consistently beat everything, of course...

The question is, what language do you use know. I'm assuming that you are using a Mac because you are on a MAc Forum. Never known anyone to use BASIC for mac.

Another thing about your last line... "C tends to consistently beat everything".... that is true.
Ever thought that C is popular because it is actually that good??
Unix... perhaps the best Operating System alive, is a C code. And it remains the best performer when compared to all the Operating systems. One very reason it was chosen to be the heart of the Mac OS X.
A program written in C is only as good as the programmer who wrote the code. If the programmer wrote some dodgy code, then yeah... you can expect an average program that does not work as well as it should.

I'm guessing you are a professional programmer, so you'd probably know better than me.

In my opinion, C & C++ is a very good choice. Yes it might be tough and painful, but I would think that it is well-worth the while getting into it.
Unix (the best OS by far and the heart of Mac OS X) is nothing but a C code. That should show that a good code written in C can be a great thing.
Correct me if I'm wrong, but I've never seen a program in Java or BASIC have that kind of testimonal.
 
Joined
Nov 20, 2007
Messages
93
Reaction score
2
Points
8
I didn't read through all of the thread, but if you just want to learn a language and you don't care exactly what all it can run on - you might look in to the .Net technologies.

C# and VB.Net are both very easy and robust languages that can also be used in conjunction with ASP.Net to build dynamic web pages.

Also, powershell syntax is very much like C# so it would be an easy scripting language.

Downside (to a mac person) is that it is windows only technology.....what can I say, I'm primarily and windows guy :p


edit: Just read that you don't have a windows machine :( If you can come up with one, there are awesome video tutorials and written guides.
 

Shop Amazon


Shop for your Apple, Mac, iPhone and other computer products on Amazon.
We are a participant in the Amazon Services LLC Associates Program, an affiliate program designed to provide a means for us to earn fees by linking to Amazon and affiliated sites.
Top