Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
VB, vc++, c# are old and unusable. You need skills in concurrent, functional programming like JavaScript (real JavaScript )

: spit-take :

If your cs program is teaching mvc, ... - they are way behind the curve.

MVC is mandatory. I wouldn't hire anyone who didn't understand it. At the very least, it's the cornerstone to any GUI or mobile development. It's easy to separate the amateur OS X/iPhone developers from the experts just by understanding of MVC alone.

I'd even go as far to say I wouldn't work with anyone who didn't understand MVC. Unless they wanted to spend their life doing PHP and JavaScript, but a lack of understanding of MVC has no place in application design.
 
: spit-take :



MVC is mandatory. I wouldn't hire anyone who didn't understand it. At the very least, it's the cornerstone to any GUI or mobile development. It's easy to separate the amateur OS X/iPhone developers from the experts just by understanding of MVC alone.

I'd even go as far to say I wouldn't work with anyone who didn't understand MVC. Unless they wanted to spend their life doing PHP and JavaScript, but a lack of understanding of MVC has no place in application design.

mvc is horribly non-scalable. Sure, it should be understood but for today's concurrency needs, mvc is dead. Scala, node.js, and other functional languages are the future. Oop and mvc are dead.
 
Yeah. C and C++ and OOP are completely dead and java script is where it's at. :rolleyes:

Seriously, please refrain from posting such tripe in the future. It makes the whole forum look bad.
 
mvc is horribly non-scalable. Sure, it should be understood but for today's concurrency needs, mvc is dead. Scala, node.js, and other functional languages are the future. Oop and mvc are dead.

You keep using that word. I do not think it means what you think it means.

(I.E. mvc has NOTHING to do with concurrency, and the entire point of MVC is scalability. The entire iOS and Mac SDKs are based on MVC, along with Android, Windows Phone 7, Windows 8, etc, etc, etc...)

You keep citing Node.js as a programming language (it's not, it's an API)... Given that, I'm going to leave the rest of this quote alone...

Yeah. C and C++ and OOP are completely dead and java script is where it's at. :rolleyes:

Probably shouldn't mention to him JavaScript requires an interpreter frequently written in C/C++.

Now, if you could write a JavaScript interpreter in JavaScript that would be an accomplishment. :)
 
If you want a Mac with expandability options, you've pretty much narrowed it down to your one choice. I use a mac pro at work and it's a very pleasant desktop experience, especially since you have an air kicker.
 
If you want a Mac with expandability options, you've pretty much narrowed it down to your one choice. I use a mac pro at work and it's a very pleasant desktop experience, especially since you have an air kicker.

The other nice thing about having a Mac Pro is that it takes pressure off your laptop. Because I have a Mac Pro, I honestly wouldn't feel that bad off with a 11" Air, because when I get home I have a fast machine to use, letting me take advantage of a machine optimized for portability when I'm away.
 
I'm guessing that it will last a lot longer than an imac or a hackintosh

If you want a Mac with expandability options, you've pretty much narrowed it down to your one choice. I use a mac pro at work and it's a very pleasant desktop experience, especially since you have an air kicker.

That's my main reason for wanting a Mac Pro. Expandability, I need this computer to last at least the 4 years I'm in college. And if i just had a macbook pro sure that would last long but I would want to upgrade at some point and I don't want to deal with selling and buying another one.


If you go to school somewhere cold (like I do) and find yourself often deeply unmotivated to walk to wherever the lab is (like I do) then I can't fault you for getting the most powerful machine you can afford.

Exactly, I will be able to go to a lab and work from there, but I am going to go to college at Cornell University. The coldest of the cold. So I don't want to be going back and forth to the lab.

A new computer is no more an investment than a car, which is to say not an investment at all.

I beg to differ here. It may not be a straight up investment, but it could end up being an indirect investment, because of the computer I could do some work on it that would net me a ton of money. Just like a car could afford someone some opportunities to make money.
 
Exactly, I will be able to go to a lab and work from there, but I am going to go to college at Cornell University. The coldest of the cold. So I don't want to be going back and forth to the lab.

Cornell? Too cold to walk to the lab?

Yes, you sir, are a Mac Pro student user. :D

Welcome to the club. Your membership card is in the mail.
 
You keep using that word. I do not think it means what you think it means.

(I.E. mvc has NOTHING to do with concurrency, and the entire point of MVC is scalability. The entire iOS and Mac SDKs are based on MVC, along with Android, Windows Phone 7, Windows 8, etc, etc, etc...)

You keep citing Node.js as a programming language (it's not, it's an API)... Given that, I'm going to leave the rest of this quote alone...



Probably shouldn't mention to him JavaScript requires an interpreter frequently written in C/C++.

Now, if you could write a JavaScript interpreter in JavaScript that would be an accomplishment. :)

Node.js is server-side JavaScript. It is a JavaScript API. And yes the V8 engine is written in c++.

Close coupling between the view and the controller is the reason MVC and similar frameworks do not scale well. Ever try to scale a ruby app to allow millions of concurrent requests? It sucks. The only real choice to scale mvc based apps is to throw massive resources at it. The business logic gets in the way.

My personal preference of JavaScript is that you are able to use a single language all the way through from client to services (node.js) to data store (mongo db). The best scaling apps I've worked on we're with Scala and message queues so the services could talk to each other.

You can think what you want but there are reasons that Twitter and HP uses Scala and LinkedIn uses node.js. There is also good reason that Microsoft is investing heavily to port node.js to windows.

Mvc has its place. Standalone mobile and desktop apps for example. But the standalone model will not last forever. The future is distributed, cloud-based apps and mvc does not fit that model. It would be extremely helpful if software engineers and cs students were more forward looking than mvc.
 
Node.js is server-side JavaScript. It is a JavaScript API. And yes the V8 engine is written in c++.

Right, it's a JavaScript API.

Close coupling between the view and the controller is the reason MVC and similar frameworks do not scale well. Ever try to scale a ruby app to allow millions of concurrent requests? It sucks. The only real choice to scale mvc based apps is to throw massive resources at it. The business logic gets in the way.

The entire point of MVC is loose coupling. If you're doing close coupling, you're doing it wrong. Each component should run entirely independently of the others.

My personal preference of JavaScript is that you are able to use a single language all the way through from client to services (node.js) to data store (mongo db). The best scaling apps I've worked on we're with Scala and message queues so the services could talk to each other.

An extremely slow language that requires a lot of C/C++ code to run, yes.

You can think what you want but there are reasons that Twitter and HP uses Scala and LinkedIn uses node.js. There is also good reason that Microsoft is investing heavily to port node.js to windows.

Because that's web development, and computer science goes much deeper than web development. Someone has to write the JavaScript engine, and you don't do that in JavaScript.

Mvc has its place. Standalone mobile and desktop apps for example.

A huge chunk of the industry, and growing, yes.

But the standalone model will not last forever. The future is distributed, cloud-based apps and mvc does not fit that model.

The industry seems to be moving towards rich client applications back by web APIs. The pure web approach was tried, and turned out to be a dud.

Computer Science is not about learning a specific technology or specific language. It's about learning how software works, so you're prepared to adopt any language. This makes JavaScript unideal for teaching, as it only covers a small subset of what you need to know to adopt any language. Meanwhile C and C++ are ideal because almost all modern languages are based on them. If you learn C, you can easily learn JavaScript. Can a JavaScript programmer quickly pick up C? Not so much.

It would be extremely helpful if software engineers and cs students were more forward looking than mvc.

It would be helpful if you were taught better MVC.
 
As a person who graduated 40 years ago, I'm sure that any prediction about what programming languages will be important in the future is ludicrous. You want a solid education in theory, which you can always apply to whatever tools are available in the future. Even C didn't exist when I was in school, but I still have my set of Knuth's Art of Computer Programming and find it very useful for algorithms.

At various times in the past 40 years these languages were going to take over: LISP, Smalltalk, Prolog, PL/1, APL, Ada.
 
As a person who graduated 40 years ago, I'm sure that any prediction about what programming languages will be important in the future is ludicrous. You want a solid education in theory, which you can always apply to whatever tools are available in the future. Even C didn't exist when I was in school, but I still have my set of Knuth's Art of Computer Programming and find it very useful for algorithms.

At various times in the past 40 years these languages were going to take over: LISP, Smalltalk, Prolog, PL/1, APL, Ada.

Excellent point, and I take it you work in this field.

It's fun to hear what students or new graduates talk about when it's about anything in technology. My school is better than your school in CS, or my language is more up to date than yours, or better yet (my computer could play games better than yours and I have the killer graphics card!!)... as if that makes that specific person a better programmer. :)
 
As a person who graduated 40 years ago, I'm sure that any prediction about what programming languages will be important in the future is ludicrous. You want a solid education in theory, which you can always apply to whatever tools are available in the future. Even C didn't exist when I was in school, but I still have my set of Knuth's Art of Computer Programming and find it very useful for algorithms.

At various times in the past 40 years these languages were going to take over: LISP, Smalltalk, Prolog, PL/1, APL, Ada.

C and UNIX have been around for roughly 40 years. Scary.
 
Right, it's a JavaScript API.



The entire point of MVC is loose coupling. If you're doing close coupling, you're doing it wrong. Each component should run entirely independently of the others.

They don't run independent. They are loosely coupled for maintenance purpose but tightly coupled in terms of scalability. You can't easily pull your business logic out and scale it up on a separate service if needed. Each piece is dependent on another.

In a loosely coupled ( or should I say uncoupled ) system, each component acts independently - no one part of the system cares about another. It just happily performs it's function. If there is need to scale a particular component of the overall system, it much easier without an MVC relationship.

An extremely slow language that requires a lot of C/C++ code to run, yes.

Try to widely distribute a binary written in C++. JavaScript is slower than C++, so what? Lot of languages are. It's still pretty fast and is much more flexible. Thanks to companies like Google and their V8 JavaScript engine the speed gap is shrinking.

Because that's web development, and computer science goes much deeper than web development. Someone has to write the JavaScript engine, and you don't do that in JavaScript.

Not just web-dev. For example WebOS has node.js runtime built in. Others are following.

A huge chunk of the industry, and growing, yes.



The industry seems to be moving towards rich client applications back by web APIs. The pure web approach was tried, and turned out to be a dud.

It was a "dud" because it was a PITA to scale. Rich client applications = JavaScript frameworks ( Dojo, jQuery, YUI )

Computer Science is not about learning a specific technology or specific language. It's about learning how software works, so you're prepared to adopt any language. This makes JavaScript unideal for teaching, as it only covers a small subset of what you need to know to adopt any language. Meanwhile C and C++ are ideal because almost all modern languages are based on them. If you learn C, you can easily learn JavaScript. Can a JavaScript programmer quickly pick up C? Not so much.

My point is really not JavaScript specific, just my personal bias. More and more developers are going to be moving into writing web-based applications. Its where there jobs are and growing. Procedural concepts and MVC do not fit well in this realm. Web dev and even desktop/mobile apps will require not only knowledge of mvc, which is becoming less important, but developers will also need skills in functional languages. Haskell, LISP (especially Clojure), Scala, Erlang, Perl, JavaScript and XQUERY to name a few.

Yes. JavaScript developers do well when writing C code. In fact my experience is that straight C/C++ programmers have a much harder time moving to JavaScript. They often find themselves lost in the prototypical, classless object oriented system. They typically struggle with statelessness, closures, callbacks, and recursion.

It would be helpful if you were taught better MVC.

Nice assumption
 
That's my main reason for wanting a Mac Pro. Expandability, I need this computer to last at least the 4 years I'm in college. And if i just had a macbook pro sure that would last long but I would want to upgrade at some point and I don't want to deal with selling and buying another one.

Your school isn't going to assign any work that can't be done in its own labs. It's highly unlikely that those computers are more powerful than your iMac. You will most likely not have any work that can't be done on your MacBook Air.

I definitely agree with the poster who suggested multiple monitors. I'm halfway through my junior year and I'm selling my perfectly fine 4-year-old MacBook Pro to buy one with Thunderbolt so I can use 2 27" screens.

The majority of what you'll be learning is theory anyway... most of which won't even require a computer.


...and over 90% of my work is now required to be done over SSH on a course server, so that everyone is working under the same environment or because some CompSci majors are too dumb to set up their own Linux VM if they're on Windows.
 
C and UNIX have been around for roughly 40 years. Scary.

Unix First edition was November '71. I graduated the preceding June. But nobody outside of Bell Labs had access. In '71-'72 I used BCPL for some school projects. BCPL was a precursor to C. I first got to use a UNIX system, and C, in 1980, but both were really still experimental at the time, found only in schools and research labs (I was in the latter). My copy of "The C Programming Language" is dated 1978 and is the first edition.
 
I beg to differ here. It may not be a straight up investment, but it could end up being an indirect investment, because of the computer I could do some work on it that would net me a ton of money. Just like a car could afford someone some opportunities to make money.

It would be capital.
 
I would get an iMac before a Mac Pro. The Mac Pro line is pretty much dead, and over priced. I wouldn't be surprised if apple got rid of the Mac Pro and replaced it with two lines of iMac's. iMac and iMac Pro.

In case you haven't noticed yet Intel has not released new Xeon chips.

As for "overpriced" the Mac Pros, when they came out were the cheapest by $1500 to any other comparable system with the same specs. Sure prices drop while Macs stay the same but Apple makes money off of hardware not software, hence why the software is dirt cheap.

Not to mention its always foolish to chase hardware specs.

To the OP:

You will not need a Mac Pro by any means. You will probably be programming, doing a lot of math, and using Unix a good bit. You can do this all on an 11 inch air (although I'd recommend an external monitor to go with it).
 
As a person who graduated 40 years ago, I'm sure that any prediction about what programming languages will be important in the future is ludicrous. You want a solid education in theory, which you can always apply to whatever tools are available in the future. Even C didn't exist when I was in school, but I still have my set of Knuth's Art of Computer Programming and find it very useful for algorithms.

At various times in the past 40 years these languages were going to take over: LISP, Smalltalk, Prolog, PL/1, APL, Ada.

I graduated 11 years ago and I couldn't agree more - computer science is not a programming course. Being able to write java script is not quite the same thing.

----------

Yes. JavaScript developers do well when writing C code. In fact my experience is that straight C/C++ programmers have a much harder time moving to JavaScript. They often find themselves lost in the prototypical, classless object oriented system. They typically struggle with statelessness, closures, callbacks, and recursion.
it's amazing how your personal bias becomes fact in your own eyes.

Clearly your frame of reference is very limited, but I find it especially hard to believe that someone with C experience would struggle with java script. Actually I find it hard to believe that anyone with half an interest could ever struggle with java script.
 
You could buy a Mac Pro, but I think that would be massive overkill.

A better question, is what will your school be using?
Is it primarily a Linux, Microsoft, Mac, or other environment?

I highly recommend running the same OS as your professors.

You actually can use Linux, Windows or OS X. Profs will use a mix, but Macs are popular with CS these days. I used a Mac Pro for mine, my daughter is using a MacBook Pro and you could do fine with a MacBook Air.
 
I graduated 11 years ago and I couldn't agree more - computer science is not a programming course. Being able to write java script is not quite the same thing.

----------

it's amazing how your personal bias becomes fact in your own eyes.

Clearly your frame of reference is very limited, but I find it especially hard to believe that someone with C experience would struggle with java script. Actually I find it hard to believe that anyone with half an interest could ever struggle with java script.

Clearly you've never created production applications using JavaScript.
 
You know what they say about assumption?

Here is an example of one commercial application I've worked on:

https://ibank.barclays.co.uk/olb/x/LoginMember.do

That is hardly a JavaScript based web app. It is a static page that has smattering of JavaScript to handle forms and click events. It has tables and forms and every event causes a page load and who knows what else.

Here is a good example of jsp app (Yeah MVC, I know) that uses multiple Dojo api's to create an amazing JavaScript based web app.

http://app.databasin.org/app/pages/mapsHomePage.jsp#sortField=createDate&ascending=false&page=2
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.