Re: Cocoa approachable by non-programmers ?
Re: Cocoa approachable by non-programmers ?
- Subject: Re: Cocoa approachable by non-programmers ?
- From: Oscar Morales Vivó <email@hidden>
- Date: Mon, 24 Feb 2003 09:59:55 +0100
I have come to Cocoa through a far more convoluted route. After
learning too many languages to bother mentioning through my never
ending degree in computer science/engineering, I did learn C++ to face
my masters project, and have come to Cocoa from it. Funnily enough I
did not bother to learn C before C++, but as I had a background of
several programming languages and most concepts of computing it wasn't
that bad. Of course, the sheer size of C++ meant It took me far longer
than expected to learn it and all its quirks (still uncovering some
from time to time) but that's a problem for another list...
So the fact is that I use Cocoa as a front-end for my C++ code. I've
developed a huge codebase in the last couple of years for geometry and
3D stuff and I can quickly build an interface for some of it.
Personally I love it, as it's "the best tool for each job" approach. C
for simple things that need efficiency in speed and/or size, C++ for
more complex things where efficiency is still necessary, and
Objective-C/Cocoa for the front end, which doesn't need low level
efficiency but needs flexibility and easily going from concept to
design to implementation.
So the problem might be that the easiness of building interfaces and
small programs gets people without experience in low-level programming
(that's C, folks) to try it. And that's good. For all those of you
around learning Cocoa, consider C a necessary evil, and don't forget
learning not only the hows, but the whys too.
I'd personally advocate using a sprinkling of C++ features (not the
bloated stuff, thanks. Actually I think the ones I'm saying are being
slowly integrated in base C ;). For example, I always use references
instead of pointers for everything where a null value would make no
sense (not for Objective-C objects, for obvious reasons). And being
able to declare auxiliary variables on the fly actually helps make the
code more readable (as everything, it has to be done with a modicum of
reason to it). If only for those reasons all of my code files are .mm
On Monday, Feb 24, 2003, at 03:45 Europe/Madrid, publiclook wrote:
I have noticed a lot of questions that are not so much about Cocoa as
about programming in general. I also notice a lot of questions that
are really C questions rather than Cocoa questions.
Is this a result of the fact that Cocoa is seen as approachable by
non-programmers or is it the result of a culture shift in programming
/ education ?
When I was learning to program (really not that long ago),
universities usually used Pascal for introductory courses, but
"serious" classes were taught in C and/or an assembly language.
Hobbyist programmers learned C because it was the only ubiquitous
portable language (to the extent it was portable), and it was
necessary to stay close to the hardware for performance.
Fundamental issues about how a computer works and the use of stack and
calling conventions and interrupt service routines and manual memory
management were introductory material for both the hobbyist and
budding professional. Those topics were necessary to write "real"
programs.
Cocoa is built on top of a C foundation for better or worse. I get the
impression that C and systems programming and low level issues like
stack and why is it used are no longer taught or no longer seem
important. For that matter, comparisons of languages and programming
paradigms seems absent.
Is it goal of current culture that all software be written in Java?
I don't really have any information to base my impressions. They are
completely subjective. I actually like Java too. In many/most cases,
the value of portability and easy programming overcome the value of
execution performance and the knowledge of what is really happening.
I guess I just think the the cultural values of Java are opposed to
the (for better or worse) cultural values of C/Objective-C. Java is
about idealized virtual machines and protecting or insulating
programmers from the implementation details of what their code does. C
is about access to the hardware using programming concepts and
techniques supported directly by hardware. In most environments, it is
very easy to visualize the hand full of machine instructions that will
be generated for any particular C statement. C is a super-macro
assembler with a few cross platform features.
Is there any future for Cocoa outside the Java world ? Is the fact
that Cocoa is built on C a fatal flaw ? I don't think it is possible
to build something like Cocoa in Java, and yet the very techniques
that make Cocoa possible (IMHO) may make it unacceptable to a new
generation of programmers who don't know what pointers are.
Is the programming culture really changing so much, or is it just the
expectations of Cocoa newbies that is changing, or are my impressions
off base ?
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.