[ale] flip flopping on programming, now interested in c++
Ed Cashin
ecashin at noserose.net
Sat Jun 30 21:52:53 EDT 2012
I think this is going to be a highly personal decision, and you'll probably
get responses that are also unique to each responder. Here's my two cents,
but I know you have to take it with a grain of salt.
Firstly, I have noticed that the javascript scene is really very
interesting right now. There's an amazing resource in code academy.
http://www.codecademy.com/#!/exercises/0
It's free, and although I haven't done it myself, I've seen a couple people
do it, and I'm always really impressed by what I see them doing. It
teaches good programming, as far as I can tell.
And when I was getting started programming in C, one of the biggest
difficulties was the programming environment getting in the way of my
programming exercises. With javascript, that problem isn't a big deal,
because the browser is the programming environment.
There are interesting new ways for programmers to help each other get
better, and javascript is often the lingua franca:
http://coderetreat.org/
There are SERVER side applications built with javascript, as well as the
client side software most people expect. Some of this server side stuff
has attracted remarkably interesting and intelligent people.
http://nodejs.org/
There are interesting frameworks that expand javascript,
http://underscorejs.org/
... and meta languages that emit javascript when compiled,
http://coffeescript.org/
Javascript is no joke. It's a nice language capable of supporting
sophisticated programming. Douglas Crockford has talked articulately about
its positives and negatives.
http://yuiblog.com/crockford/
I'm not an anti-C++ bigot. Those who poke fun at C++ often find fault with
its schizophrenia, its error messages, or its "bloat". By schizophrenia I
mean that it attempts to appeal to programmers who want object oriented and
dynamic features without being very object oriented or dynamic. The
template feature makes the error messages especially intimidating to
newbies. The bloat is in the language itself, which takes a long time to
exhaustively describe and learn, compared to something like lisp or C or
Objective C, and also in the generated code, which can balloon because of
the way C++ often winds up expanding the object code to simulate dynamism
instead of using abstraction through indirection the way more dynamic
languages do.
Personally, I like some of the features of C++, but I am wary of any
language too large for the whole language to be known by its diehard
advocates. If you do learn C++, I recommend doing it by reading
Stroustrup's _The C++ Progamming Language_. That way you'll know the whole
language, and when you're talking to someone who claims they know the whole
language, you'll be able to say, "What do you think of function adapters?"
and they'll realize they know a subset, because almost nobody who "knows
C++" knows what those are. Then you can talk about their subset in earnest.
I think Go is more interesting than C++ if something less dynamic or more
strongly typed than javascript is needed.
http://golang.org/
Google wouldn't have hired people like Rob Pike and Brian Kernighan to make
Go if C++ had been the way to go for Google. :) Seems worth a look.
On Sat, Jun 30, 2012 at 5:55 PM, Ron Frazier (ALE) <
atllinuxenthinfo at techstarship.com> wrote:
> Hi all,
>
> Some of you that have read my posts in the past probably know that I've
> been threatening to relearn programming after being out of it for many
> years. I've also been waffling on the language of choice. I was really
> close to carrying out my threat to learn something, and was about to focus
> on Java, and even register for some classes. I realized a few things that
> prompted me to shift again.
>
> The two primary things I like about Java are the fact that it's what is
> used to program Android, although it may be somewhat nonstandard, and that
> it has built in memory management. The main things I don't like about it
> are the requirement to use the Java interpreter (JVM) and the difficulty
> (if it's even possible) of creating an executable file.
>
> I began to realize that the use cases for Java, are something I don't want
> to make my career on. I've observed three main uses.
>
> A) Website design and programming. As a programmer, I would have to worry
> about compatibility with 4-8 major browsers and probably 4-8 old versions
> of each. Combine that with security risks like SQL injection, and people
> like me who don't allow scripting on their browsers at all for sites not
> specifically trusted, and I realized that I don't want to be dealing with
> this hassle.
>
> B) In the past, a popular use for Java was desktop applications,
> downloaded and not driven from a website. I think this is greatly
> diminishing, as many people such as myself, are considering uninstalling
> Java altogether because of security risks. Career wise, I don't think this
> has great promise.
>
> C) The third use for Java is Android programming. This, I would
> potentially be interested in. However, I don't know how much of a
> profitable career path that would be.
>
> I'm shifting my focus back to C++. Based on my reading, I don't like some
> of the features of C++. In particular, I don't like the numerous documented
> bear traps that the programmer can fall into regarding pointers and memory
> management. However, I do like the types of things that C++ is being used
> for. Almost all these are something I would be interested in doing. I
> really want to be able to program machines, like robots, solar energy
> control systems, industrial controls, building automation, etc. Things like
> game programming could also be appealing.
>
> So, when it actually comes down to paying for education and taking
> classes, I think I'll be taking some C++ classes next year after getting a
> prerequisite course out of the way. I'm wondering if anyone can recommend
> other resources that would help me. I'm thinking I'll use the G++ compiler.
> I think it runs either in Linux or Windows but I would have to confirm
> that. I'll probably use GVim for my initial editor. I'm looking for a
> middle of the road IDE, similar to what NetBeans would do for Java. I've
> pretty much concluded that Eclipse is too complicated for me to try to be
> learning at the same time I'm learning the programming language. If anyone
> has any suggestions for resources, IDE's, user groups, online groups, etc.,
> I'd appreciate knowing about them. I always prefer things that can run on
> either Linux or Windows (up to Win7). I doubt I'll ever own a Mac, unless I
> have money to burn and need it for some reason, and I doubt I'll be
> upgrading to Windows 8 and the "Metro" interface.
>
> I've already picked up the book Sams Teach Yourself C++ in 1 Hour per Day,
> and plan to be working through that prior to getting into the formal
> classroom. I'd prefer any resources I use to be compatible with the C++11
> standard that was approved last year.
>
> Thanks in advance for any assistance.
>
> Sincerely,
>
> Ron
>
>
>
> --
>
> Sent from my Android Acer A500 tablet with bluetooth keyboard and K-9 Mail.
> Please excuse my potential brevity.
>
> (To whom it may concern. My email address has changed. Replying to former
> messages prior to 03/31/12 with my personal address will go to the wrong
> address. Please send all personal correspondence to the new address.)
>
> (PS - If you email me and don't get a quick response, you might want to
> call on the phone. I get about 300 emails per day from alternate energy
> mailing lists and such. I don't always see new email messages very
> quickly.)
>
> Ron Frazier
> 770-205-9422 (O) Leave a message.
> linuxdude AT techstarship.com
>
> _______________________________________________
> Ale mailing list
> Ale at ale.org
> http://mail.ale.org/mailman/listinfo/ale
> See JOBS, ANNOUNCE and SCHOOLS lists at
> http://mail.ale.org/mailman/listinfo
>
>
--
Ed Cashin <ecashin at noserose.net>
http://noserose.net/e/
http://www.coraid.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.ale.org/pipermail/ale/attachments/20120630/4d12e83d/attachment-0001.html
More information about the Ale
mailing list