 |
 |
Learning to Writing Code for OSX
|
 |
|
 |
|
Mac Elite
Join Date: Oct 1999
Location: No frelling idea
Status:
Offline
|
|
If I wanted to learn to write code for the next OS, should I pick-up code warrior for the current OS or learn UNIX, or both. I have never written any code and would like to learn. From what I have just read off the "Wired" site, OSX will allow 2 or 3 people to write applications as opposed to the huge teams currrently supported by the big software companies.
slider
|
|
|
| |
|
|
|
 |
|
 |
|
anonymous
|
|
Originally posted by slider:
If I wanted to learn to write code for the next OS, should I pick-up code warrior for the current OS or learn UNIX, or both. I have never written any code and would like to learn. From what I have just read off the "Wired" site, OSX will allow 2 or 3 people to write applications as opposed to the huge teams currrently supported by the big software companies.
Depends on what you're targeting. If you want to write software for both Mac OS 8.6+ and Mac OS X, you'll want to go with Carbon development, and CodeWarrior would probably suit you best. It's widely regarded as the top development environment for classic Mac OS and Carbon development.
If you're just interested in Mac OS X software, Cocoa is the way to go. That's what the article is talking about when it mentions 2 or 3 people putting out a full-fledged application. It's very powerful, very well designed, and it gives you lots of functionality "for free" in your application. You pretty much need Apple's development tools to use Cocoa, which will be available on-line next month.
No matter what you use, it would be a good idea to learn your way around UNIX systems. Learning a bit about how the system works is kind of a base requirement for doing serious development, and the command-line tools can come in very handy at times.
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Oct 1999
Location: No frelling idea
Status:
Offline
|
|
OK, what would you recommend I use to learn UNIX on my Mac? I would be starting from scratch.
|
|
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Aug 1999
Status:
Offline
|
|
Do you plan on installing MacOS X Public Beta? If so, you could use Terminal.app to figure out more about UNIX.
Getting LinuxPPC up and running plus installing some apps and compiling stuff is probably the best way to learn UNIX. That is if you want to learn all the nitty gritty stuff.
Get a UNIX book. O'Reilly's Running Linux series is good. It will teach you how UNIX works, many of these concepts will apply to OS X's underlying structure.
If you're talking about programming for UNIX, you'll probably start with C. K&R's book is the ANSI C standard. Get that if you want to learn C.
Please note that Cocoa programming is done in either Objective-C or Java, with the former being most popular. It won't hurt you to pick up C before you move to Objective-C but don't venture into C++. That will only corrupt your mind... :-)
|
|
|
| |
|
|
|
 |
|
 |
|
anonymous
|
|
If you're interested in how Mac OS X works, getting the Public Beta is of course going to be the most accurate representation.
Linux distributions like LinuxPPC will certainly immerse you in UNIX, but Mac OS X differs from Linux in some significant ways. Common shell tools like awk, sed, vi, etc. will be the same, so it would still be helpful from that standpoint, but the way the two systems are laid out and configured is very different. Just something to keep in mind.
I agree that the O'Reilly books are generally very good.
Both C and Java have their good and bad points. Java would probably be easier to learn; the automatic memory management, extensive class libraries, and pure object-oriented nature of the language make it very nice. Java's also good if you plan on doing other things with it, like web programming (the next version of WebObjects, for example, is Java-based).
The advantages to using C are that it's so widespread, it gives you much greater access to the system (and thus it's much easier to really screw things up), and Objective-C is the native language of Cocoa. You'll get much better performance out of C. The downside is that it's more difficult to manage, and C by itself (without the Objective-C extensions) is a procedural language -- so you'd be learning ways of thinking that you'd have to change when you move into object-oriented programming. Java forces you to start out on the right foot by programming with objects (although there's a whole religious war going on over whether Objective-C or Java is a better object-oriented language...just a warning).
Hope this helps in some way.
|
|
|
| |
|
|
|
 |
|
 |
|
anonymous
|
|
Just noticed that someone has posted a Virtual PC disk image of Darwin compiled for Intel. This would be one way of learning about the UNIX foundations of Mac OS X without having to install another OS on your system, if you have Virtual PC 3.
http://www.darwinfo.org/pub/darwin/i...nIntel.sit.bin
|
|
|
| |
|
|
|
 |
|
 |
|
Junior Member
Join Date: Jun 2000
Location: Where the grass is greener
Status:
Offline
|
|
Thanks for that link... That is a great idea... I'm downloading it now!
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Oct 1999
Location: No frelling idea
Status:
Offline
|
|
I don't have VPC 3.03, but I will get it. I have already ordered the "Running Linux" and "Beginning Lunix Programing". Does it matter which version of VPC I get. DOS is the cheapest, but they do have one with Red Hat Linux.
slider
|
|
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Aug 1999
Status:
Offline
|
|
If you're planning on running the Darwin image it doesn't matter which one you get...
The difference in prices is the license cost of the OS that comes with it (even though RH Linux should be nil but that's a different story)...
|
|
|
| |
|
|
|
 |
|
 |
|
anonymous
|
|
Originally posted by slider:
I don't have VPC 3.03, but I will get it. I have already ordered the "Running Linux" and "Beginning Lunix Programing". Does it matter which version of VPC I get. DOS is the cheapest, but they do have one with Red Hat Linux.
If you're just interested in the Darwin image and/or want to run DOS apps, go with the cheaper DOS version. It's the same Virtual PC software, just a different disk image supplied. If, OTOH, you want to make the most of your books and compare Linux with Darwin/Mac OS X, it might make more sense to go with the Red Hat version. Red Hat is actually a free download, but you might as well save yourself the hassle.
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Oct 1999
Location: No frelling idea
Status:
Offline
|
|
Thanks anonymous and MadBrowser, I'll go with the redhat version, it's only alittle more after the rebate.
|
|
|
| |
|
|
|
 |
|
 |
|
Tintim
|
|
I wouldn't say that you should go the Linux path. It is very hard to learn. By the way, RedHat Linux is only available for the Intel-based platform.
What I recommend is that you download the CodeWarrior Lite 2 from http://ftp.yars.free.net/pub/softwar...opment/cwlite/ and get a beginners' book to learn the C language. Then after you learnt the C language and still serious about Mac programming, buy CodeWarrior Pro 6 for OS X and learn to program software for OS X and/or Classic.
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Oct 1999
Location: No frelling idea
Status:
Offline
|
|
Problem, VPC Linux requires a 350MHz processor, I have a 333. I have an email in with Connectix to see if I can get away with it, however I don't think it is the 17MHz that will make all of the difference, but the system speed might. Any other options?
|
|
|
| |
|
|
|
 |
|
 |
|
anonymous
|
|
slider:
The Virtual PC FAQ says that Connectix found the speed of Windows 2000 to be acceptable on a 350MHz G3. Darwin (and Linux, particularly in text mode) is not nearly that resource-hungry. I wouldn't worry too much about it, since you're mainly using it for learning.
Tintim:
You might want to read through the rest of the posts here. There's a reason Virtual PC is being discussed, and CodeWarrior was already brought up earlier.
|
|
|
| |
|
|
|
 |
|
 |
|
Fresh-Faced Recruit
Join Date: Sep 2000
Location: Bakersfield,CA,USA
Status:
Offline
|
|
I have CW pro 4 that I bought for a pascal class. Do I have to buy ver 6 to get the carbon stuff?
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Oct 1999
Location: No frelling idea
Status:
Offline
|
|
I think your right, thanks again.
slider
|
|
|
| |
|
|
|
 |
|
 |
|
Tintim
|
|
anoymous
For a beginner to get use to Linux and do programming on it is not simple. As I recommended earlier, learn the C language on the current Mac OS first using a CW package, then if you have CodeWarrior Pro, download the CarbonLib SDK and learn to write software for OS X or go to http://www.mactech.com/macintosh-c/ to learn to write software for Classic.
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Oct 1999
Location: No frelling idea
Status:
Offline
|
|
Tintim, thanks for your input. I am going the Linux path to better understand the core of OSX, Darwin. Anonymous mentioned my choice was to learn the Classic and Carbon, and/or Cocoa. I had mentioned an article from the "Wired" website in my original post. My personal belief is that classic and carbon are transitions and everything will be written in Cocoa. This is what I want to learn. As mentioned, Lunix is not the same as OS X, but it is a good place to start. I have also purchased "Beginning Java" and do plan on learning "C" as well. The goal is to be able to write in "Cocoa" with an understanding of it's core. Thanks again and for the link.
|
|
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Aug 1999
Status:
Offline
|
|
Put it this way...
If you master Linux, OS X will be a breeze and you'll have a good understanding of UNIX system internals.
|
|
|
| |
|
|
|
 |
|
 |
|
hi there
|
|
what is the url for that wired article?
and, this is the most informative, well-thought out thread i have ever read on any bullieten board anywhere.
You guys have been great to each other here. It sounds corny, but really, you've kinda made my day just be treating slider so well.
good job
|
|
|
| |
|
|
|
 |
|
 |
|
Jekyll
|
|
Java is what you should use on Mac OS X.
The complete Java Development Kit for Java 2 is on there, you get the Aqua inteface for free (when you use swing). Once you get the language down you can use it to program dirrectly to Coco (the fastest environment on Mac OS X).
|
|
|
| |
|
|
|
 |
|
 |
|
akinnie
|
|
I was under the impression that the public beta actually had Project Builder on it, and the Java implementation was much better than DP4.
If so, I'd just do that. Linux will have you learning things you'll have to unlearn, as will C (although Java is very similar syntax).
Apple is strongly encouraging new developers (Such as Apple Student Developers) to learn Java, then write Java apps via Cocoa. There are many tutorials, etc for Cocoa and java on the mac on Apple's web site, and Project Builder is quite good.
Just my 2 cents.
akinnie@northnet.org
|
|
|
| |
|
|
|
 |
|
 |
|
wjs@omnigroup.com
|
|
Well, I'd wager my company does more Cocoa development than about anyone ('cept maybe Stone), so I admit I'm biased...
But, I don't much care for Java. Used it, wrote some code for Sun way back when, and I still find it to be a bit kludgey and quirky. Java was largely based on Obj-C, and I think it lost a lot in the translation (stupid C++ syntax, no categories, too much security so no runtime fun, no subclassing class constructors).
Anyways, that's a whole nuther issue, but I wanted to say that since someone here said Java is definitely the way to go. I don't think it's definite at all, although there are some good arguments for it, and garbage collection is pretty nice.
But, to answer your question, in part, I recommend checking out the developer community resources page on our site: www.omnigroup.com/community/developer/
We have sample code and mailing lists and some free software that can help you out.
I guess this sounds like self-promotion, but we don't actually make any money doing this, and in fact it costs us to run the lists and maintain the site. (But it's worth it to help create good developers for the OS we love.)
The Omni guys tend to read our lists, and we've been using Cocoa technologies for eleven years now, so we can be purdy helpful.
Yours,
-Wil Shipley
President, The Omni Group
|
|
|
| |
|
|
|
 |
|
 |
|
Fresh-Faced Recruit
Join Date: Aug 2000
Location: Evanston, IL, USA
Status:
Offline
|
|
I'd go simpler still: learn to write tight, complete Applescript. If you hate Applescript, programming in general will probably not appeal. If you want to work at a beginnner level, Real Basic might be all you need. But to write serious stuff: start out in Java; the skills will transfer to other "C-like" languages as needed.
|
|
"I am extraordinarily patient, provided I get my own way in the end." Margaret Thatcher
|
| |
|
|
|
 |
|
 |
|
walkerbl
|
|
Regarding Java vs. Obj-C: The reality of the market is that there are three primary platforms - Windows, Mac, and Linux. In order to reduce development and service costs, you want to be able to leverage a common code base. The best way to do this is using a common language - either Java or C++. If you're only targeting the Mac market, then Obj-C is fine. Otherwise, you should stick with a common language.
|
|
|
| |
|
|
|
 |
|
 |
|
slimshady
|
|
Register as an Apple Developer with the free Online Membership! You will be able to download the Developer Tools to work with the MacOS X beta. The Public Beta does not include the compiler or build tools. Those (as well as all the GUI-based developers tools) will be available for free download (registration required) from the Apple Developer Connection website in mid-October http://developer.apple.com/membership/macosx.html.
|
|
|
| |
|
|
|
 |
|
 |
|
aaron from blackholemedia
|
|
Apple has been pushing Carbon as an transitory technology but they really should not be. Carbon is maturing into a lot more than a simple way to move OS9 apps to OSX. The developers have added a lot of features to it that will let you get preformance equal to or above that of cocoa. For how high level (read: easy to program) cocoa is, it's remarkable that it performs so well, but if you want fine tuned, speedy, UI code, I believe Carbon will deliver better results.
Another thing to think about is that Carbon development is more similar to development on other platforms. Programming to the Carbon API is a lot more similar to interacting with other UI toolkits than Cocoa. Your experience on Carbon could be more useful in the future if (heaven forbid) you have to move to another platform.
Finally, the carbon developers seem intent on making Carbon a fully viable alternative to Cocoa. Carbon apps in OSX can be built using the same Interface Builder program that Cocoa is so highly regarded for.
|
|
|
| |
|
|
|
 |
|
 |
|
Professional Poster
Join Date: Jan 2000
Location: Near Antietam Creek
Status:
Offline
|
|
Wow. I have half an iota of what is being discussed in this thread, but it is incredibly interesting.
|
|
I am stupidest when I try to be funny.
|
| |
|
|
|
 |
|
 |
|
Bigmac
|
|
I just wanted to let you guys know that the sun java tools/compiler is included with the public beta, so if you can bear the command line, you can start out developing in java without having to buy anything else.
|
|
|
| |
|
|
|
 |
|
 |
|
Fresh-Faced Recruit
Join Date: Sep 2000
Status:
Offline
|
|
Carbon is the traditional MacOS 8/9 API updated for OS X. For a new programmer it has a steep learning curve.
Cocoa is the traditional NeXTStep API updated for OS X. Cocoa is also a framework similiar to MacApp in OS 8/9 -- much of the work for writing a GUI application is already done, but the learning curve is steep and long.
Also, the POSIX API is available from Terminal App for traditional BSD apps.
Any of these three are "native" APIs for OS X. The strength of the Mach micro-kernel is that it is designed to host multiple APIs on one system. It's a great fit for OS X precisely because of the tripartite heritage of the OS. (With the exception of file locating APIs, which get complicated by the HFS/UFS volume structure, there is no speed advantage to using any one of these APIs -- they are all native.)
For someone just learning to program, you'll want to write "Hello, world." -- a very traditional piece of code. It's easiest to understand the entire code for this app when it's written for a POSIX/BSD API.
Cocoa will do much of the graphic interface, so to get things working as a typical graphic application, Cocoa would be the next level up in difficulty for a new programmer. As has been stated you can either write a Cocoa app in Java or Objective-C.
Finally the hardest one for a new programmer to master would be Carbon. There is sample code that fulfills the role of a "framework" similiar to Cocoa. But unlike Cocoa, this framework is the programmers responsibility to understand, maintain, and debug.
Carbon is the more flexible of the GUIs -- because unlike Cocoa, Apple doesn't own the framework. But you'll spend a lot more time writing code.
Small one/two person GUI apps should probably use Cocoa today. Large developers will probably continue to prefer Carbon.
Consider Photoshop. It started out as a MacApp application. But as the company grew, they had to own more of the code -- and ditched MacApp eventually so that they could port the code to Windows.
The only other wrinkle I'd mention is PowerPlant which is a framework supplied by MetroWerks with their commercial development environment. It works with Carbon, so it makes possible the framework style development used in Cocoa without all the overhead of Carbon.
With either framework, Cocoa or PowerPlant, you'll be spending a lot of time understanding the nuances of their systems.
Since you're new to programming, start with the POSIX (Terminal) stuff and see if you remain interested.
|
|
|
| |
|
|
|
 |
|
 |
|
Pegges2
|
|
Slider wrote (way up in this thread):
OK, what would you recommend I use to learn UNIX on my Mac? I would be starting from scratch.
I'm in somewhat the same situation. I really don't have any serious plans of doing into development, but I do want to get a decent grip of the underpinnings of the OS. That would include the UNIX file structure, general command line tools and that sort of thing.
I found an excellent introduction to UNIX (in general, not just the BSD flavour) by Fiamingo, DeBula and Condron of the Ohio State University. It was written in 1998, but I assume 99.9 percent of it is still relevant. Of course, a lot may not be directly applicable to OSX/Darwin, but at least it gives you the basics.
It's available both as html and as a postscript file, so you can get a really nice 130-page printout.
The text covers:
* The History of Unix
* Unix Structure
* Getting Started
* System Resources and Printing
* Shells
* Special Unix Features
* Text Processing
* Other Useful Commands
* Shell Programming
* Editors
* Unix Command Summary
* Bibliography
I warmly recommend this.
|
|
|
| |
|
|
|
 |
|
 |
|
Fresh-Faced Recruit
Join Date: Jul 2000
Location: New York, NY
Status:
Offline
|
|
I figured that I would chime in on these developer comments here. I just got into programing near the begining of this year. Therefore, I'm not an expert, feel free to correct me if I'm wrong.
I found this great book on Objective-C. It breaks down the basic ideas of it and compares it to other languages. It's actually sorta old, but I'm supprised at how good the info is. The book is called "Object-Oriented Programing : An Evolutionary Approach (second edition)". It was written back in '91 by some folks from, guess who, The Stepstone Corporation.
My main comment here is, as a beginer I'm aiming to learn Obj.-C. As it stands now, the app I want to write will be for OS X. My main problem has been getting the tools to do so. At Macworld in NYC this year, the ADC folks were so evasive as to the status of Obj-C tools. (I know, the tools came w/ DP4 but I'm not a full ADC member and I don't have it) And Metrowerks, who's both was 2 steps away from ADC's, told me that their focus was really on Carbon dev. I guess Apple is really focused on getting the current apps over to X with minimal hassle. And that is important, as without apps, all you have is an OS.
But, after reading more here on how Java and Obj.-C are similar maybe I'll just use my version of CW r5 and write some stuff in Java. At least to get a grasp on context and so forth. I figured that learning C++ would mean that I would have to change my thought processes some what if I then wanted to write in Objective-C.
Anyway, as my last comment. Obj-C vs. Java seems like an interesting issue that I'd like to hear more on. I know that the Cocoa environment uses both. However, doesn't Java always run in a VM? If one wants to write a media/resource heavy app, like I want to, won't Java mean a performance hit?
And this is my last question, really. Wasn't one of Apple's reasons for buying NeXT, and merging Openstep with it's modern OS stratagey, so that it could have a leg up in Obj-C? Isn't Obj-C supposed to be one of the best things about OS X?
Well, thanks all for reading. And if you respond/correct me that's even better.
~V. Hamilton
|
|
|
| |
|
|
|
 |
|
 |
|
eucci
|
|
One of the main advantages of Cocoa\Objective C is that it turns the whole OS into something similar to Lisp\Smalltalk machines. In those machines, since everything is an object in the native language and the language is so dynamic, you have the ability to apply dynamic changes to the system at run time. Some of the advantages this has brought to the NeXTStep system and its descendants have been:
- Services -- A very cool feature that showed up in NeXTStep 2.0. Services let applications share themselves in a common fashion. A simple example of this is the ability to select some text in one program, go to the services menu, and have the option to "Mail text to...". Or to select a URL and be able to open it in OmniWeb. The screen grabber in MacOS X is used through services. This is doable in Classic Mac OS, but usually through extensions and other hacks. In Cocoa, this is a fairly simple and very powerful way of writing a program that interacts with other programs in the system.
- Distributed Objects -- NeXT was doing portable distributed objects before CORBA, and long long long before DCOM (NeXT actually was distributed OLE\COM objects over PDO before DCOM even hit beta). The dynamic messaging oriented nature of Objective C let NeXTStep do this without need for interface files or complex systems like COM. I don't think PDO is an active part of MacOS X, but it shows what could be done with Objective C. Distributed Objects were also pretty damn easy (compared to most other systems).
- Categories -- These were mentioned earlier. Categories give developers in Objective C\Cocoa a couple of benefits. (a) Sometimes when developing, you want to code along aspect-oriented lines instead of class oriented. Categories let you extend classes in more than one source file by writing by category. For very large classes, this is a boon. Even for smaller ones, it lets you write, say, rendering methods for more than one class together in a Rendering file. (b) the other benefit is that you can extend frameworks and classes without having to change their source code. With Frameworks, this is very important. It's a great advantage of object oriented programming to be able to subclass from a common class like NSString and be able to add your own methods to it. However, it's a disadvantage (especially with frameworks) when other chunks of program code don't return instances of your new special subclass. With categories, you could write a category for NSString with methods to parse IRC strings. Now, in your IRC Client, you can use the very common NSString as often as you want and interchange with other frameworks, and still be able to get and use your extended code in an OO manner. Trust me, this is very cool.
- Very dynamic -- Objective C has a special data type, id, which basically lets you reference any type of object. People used to languages like Smalltalk and Python know there's a lot of power (and potential danger) in the ability to arbitrarily pass around any type of object. You can optionally statically type things in Objective C. This is totally not the case when developing Cocoa apps with Java, since Java is so anal about type enforcement.
Lotus made a really really cool spreadsheet, Improv for NeXTStep. It was a rather different approach to spreadsheets (especially in 91). Sadly, NeXT's tanked in the marketplace. So, a few years later, Lotus brought Improv to Windows. But it failed there because it didn't have nearly as much features as the NeXTStep version did. The dynamic nature of NeXTStep allowed Lotus to make a killer dynamic spreadsheet. Improv is probably doable today on Windows, but would require soooo many more resources than what Lotus was able to pull off in 91.
|
|
|
| |
|
|
|
 |
|
 |
|
NilObject
|
|
My personal favorite would be REALbasic. Right now it compiles for Classic, Carbon, and Windows (although Windows is a bit rocky). They are working on full support for MacOS X. It's current alphas work nicely and my carbon apps are rock stable. REALbasic's language is VERY easy to learn. In the period of about a month, I was able to learn and write an e-mail app. It works nicely! Wait until they release RB3 to purchase it, but you can download the alphas at <http://www.realbasic.com/new/>. These alphas are very robust, and have not crashed me once. There is a classic version and a carbon. Both compile for Classic, Carbon, and Windows. The Carbon version runs in X.
|
|
|
| |
|
|
|
 |
|
 |
|
arthurdent
|
|
Several people suggested getting one's feet wet in the Unix waters by installing and playing with Linux. Linux is fine, but FreeBSD would be better.
OSX uses as its core the Mach 3.0 microkernel and FreeBSD 3.x. FreeBSD/Intel is downloadable from ftp://ftp.freesoftware.com/pub/FreeBSD/releases/i386/ISO-IMAGES/
|
|
|
| |
|
|
|
 |
|
 |
|
Junior Member
Join Date: Aug 2000
Location: Los Angeles, CA, USA
Status:
Offline
|
|
The only thing about Real Basic is that it creates HUGE files, doesn't it? Ive been shocked to find 9MB Real Basic Apps.
|
|
|
| |
|
|
|
 |
|
 |
|
Junior Member
Join Date: Aug 2000
Location: Los Angeles, CA, USA
Status:
Offline
|
|
BTW- Thanks to everyone who has posted their comments. This has become a great resource to me, as I had also been curious about Cocoa.
I believe that the ongoing success of the Mac platform will be bolstered by how easy/powerful its development tools will be for different types of developers.
|
|
|
| |
|
|
|
 |
|
 |
|
boarder
|
|
I'm learning C++ in HS on Win NT based machines... Am I 'corrupting my mind'? 
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Oct 1999
Location: No frelling idea
Status:
Offline
|
|
|
|
|
|
| |
|
|
|
 |
|
 |
|
Addicted to MacNN
Join Date: Sep 2000
Location: Across from the wallpaper store.
Status:
Offline
|
|
|
|
|
"Altruism is killing America. We who want to save America must repudiate this killer, root and branch. We must understand and explain to others that the acceptance of altruism necessitates the violation of individual rights... and that the arguments for altruism are baseless..."
|
| |
|
|
|
 |
|
 |
|
wilSeven
|
|
It seems to me that the first step to learning to program is learning the basic concepts and structures used in programming- variables, repeat loops, if-then statments, eventually getting up to object-oriented programming. It's a way of thinking, and once you learn, the techniques can be applied across multiple languages.
As such, it might be a good idea to start with some of the less intimidating languages - realbasic looks good, and the o'reilly book is a good intro to programming techniques. Others that are less daunting would be Lingo (Macromedia Director's programming language - the o'reilly books are good here too), Applescript, javascript, or Flash Actionscript - very close to Javascript.
MT
|
|
|
| |
|
|
|
 |
|
 |
|
Addicted to MacNN
Join Date: Mar 2000
Location: London, UK
Status:
Offline
|
|
If you want to get into programming and learn how to think objects, then REALbasic (www.realbasic.com) is a good way to go, but it does have fundamental stability problems. I have several projects that just *BREAK* due to random IDE bugs. It also gobbles RAM. I haven't seen many, if any 9MB RB apps (yet) - if they get THAT big they tend to be too slow to run on anything and terribly unstable :-)
However, they are about 1.4MB for a semi-decent app in Classic, I haven't experimented with Carbon compilation much yet :-)
CodeWarrior 6 is out for OS X (AFAIK), that might be the way to go (if the Discover Programming edition is out, get that).
CodeWarriorU is pretty hopeless, just a set of weekly tutorial thingies that reiterate the bits you have to read for "homework" from the course material-required book. Semi-useful tho.
MacTech had a good Classic C thing for learning the Mac OS ToolBox after the basic C Syntax, but I don't think they have a carbon version yet.
When the OS X PB Dev Tools come out, you could use them, but they are quite complex and require a knowledge of a programming language (Obj-C or Java for Cocoa development, I think).
I would learn UN*X anyways, it helps you feel on top of Mac OS X with lots of fun terminal utilities you can run... It's also helpful with Linux and everything else you might come across in later life. However, to program OS X you don't really need to know it (unsure about for Cocoa dev, but DEFINITELY for Carbon, as you can develop for that on Classic which has no UN*X anyways... some apps use a clever use of UN*X stuff and Cocoa stuff, which is funky... but complicated to do... but i digress).
Hope that helps :-)
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Oct 1999
Location: No frelling idea
Status:
Offline
|
|
Thank you everyone for your replies to this post. I have just received VPC Linux from outpost and am waiting for the books. I have saved all of your links an have already visited a few. Like learning anything, the amount of time one puts in is what makes all the difference in one's success. I am very thankful for all the support I have receive and I can guarantee that I will post here when I run into problems.
Thanks again,
slider
|
|
|
| |
|
|
|
 |
|
 |
|
pustulate
|
|
Originally posted by an on:
Consider Photoshop. It started out as a MacApp application. But as the company grew, they had to own more of the code -- and ditched MacApp eventually so that they could port the code to Windows.
Actually, I remember hearing on the MacApp lists a long time ago that they didn't ditch MacApp for the Win32 port, they ported MacApp to Win32.
In any case, for my next app I'm doing Java on OSX, mainly because the market is bigger. It would be great to learn all about Objective-C, CoreFoundation, AppKit, etc, but I could spend that time learning all that stuff writing my app...which is what I'm going to do.
And that's a big issue, actually. I've got Solaris, AIX, WinNT/98/2k, and MacOS at home, but most of my friends run Win32 only. If Apple ported Quartz/etc to other platforms, then it would be worth it to learn Objective C (which, from the tutorial, looks really neat). Oh well.
One bummer decision in the runtime was to stick with mach-o. PEF loads much faster, it seems. Apps on DP4 take forever to start up on my PB/300, while on the MacOS side apps pop up in a jiffy. I guess they did that because of the ObjC runtime requirements? Oh well.
|
|
|
| |
|
|
|
 |
|
 |
|
Junior Member
Join Date: Sep 2000
Status:
Offline
|
|
Originally posted by Jekyll:
Java is what you should use on Mac OS X.
The complete Java Development Kit for Java 2 is on there, you get the Aqua inteface for free (when you use swing). Once you get the language down you can use it to program dirrectly to Coco (the fastest environment on Mac OS X).
I agree - Java is the future for application & web development. Learn C for system & device driver development.
|
|
Nobody made a greater mistake than
he who did nothing because he could only
do a little. Edmund Burke
|
| |
|
|
|
 |
|
 |
|
lrivers
|
|
Originally posted by slider:
If I wanted to learn to write code for the next OS, should I pick-up code warrior for the current OS or learn UNIX, or both. I have never written any code and would like to learn. From what I have just read off the "Wired" site, OSX will allow 2 or 3 people to write applications as opposed to the huge teams currrently supported by the big software companies.
slider
If you already know C/C++, that will be a huge advantage. If not, it's more complicated.
Another option would be to look at REALbasic, which runs on Mac OS X and Classic and compiles for both of those and Windows as well.
|
|
|
| |
|
|
|
 |
|
 |
|
lrivers
|
|
Originally posted by tombarta:
I'd go simpler still: learn to write tight, complete Applescript. If you hate Applescript, programming in general will probably not appeal. If you want to work at a beginnner level, Real Basic might be all you need. But to write serious stuff: start out in Java; the skills will transfer to other "C-like" languages as needed.
I'd argue that REALbasic implies nothing about being a beginner. We have customers who are very experienced programmers say they have never used a tool as great as REALbasic. There are plenty of pros using it. Plenty of beginners too...
|
|
|
| |
|
|
|
 |
|
 |
|
lrivers
|
|
Originally posted by aaron from blackholemedia:
Apple has been pushing Carbon as an transitory technology but they really should not be. Carbon is maturing into a lot more than a simple way to move OS9 apps to OSX. The developers have added a lot of features to it that will let you get preformance equal to or above that of cocoa. For how high level (read: easy to program) cocoa is, it's remarkable that it performs so well, but if you want fine tuned, speedy, UI code, I believe Carbon will deliver better results.
Another thing to think about is that Carbon development is more similar to development on other platforms. Programming to the Carbon API is a lot more similar to interacting with other UI toolkits than Cocoa. Your experience on Carbon could be more useful in the future if (heaven forbid) you have to move to another platform.
Finally, the carbon developers seem intent on making Carbon a fully viable alternative to Cocoa. Carbon apps in OSX can be built using the same Interface Builder program that Cocoa is so highly regarded for.
Plus developing for Carbon does not lock you to Mac OS X. Cocoa does.
|
|
|
| |
|
|
|
 |
|
 |
|
lrivers
|
|
Originally posted by rodrigo_la:
The only thing about Real Basic is that it creates HUGE files, doesn't it? Ive been shocked to find 9MB Real Basic Apps.
I'd be shocked to see a 9MB REALbasic application too! I've never seen one that big. The only thing I can think of is that there are a ton of resources (sounds, pictures, and so on) in the application.
|
|
|
| |
|
|
|
 |
|
 |
|
Forum Regular
Join Date: Dec 1999
Status:
Offline
|
|
Have any books been published for programming in:
Cocoa, Carbon, or Webobjects?
I find myself aspiring to be a macintosh programmer when I graduate in December. And by the looks of it, Omnigroup and Apple are going to prefer some Xperienced candidates.
|
|
|
| |
|
|
|
 |
 |
|
 |
|
|
|
|
|

|
|
 |
Forum Rules
|
 |
 |
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is Off
|
|
|
|
|
|
 |
 |
 |
 |
|
 |
|