Programming Forums
User Name Password Register
 

RSS Feed
FORUM INDEX | TODAY'S POSTS | UNANSWERED THREADS | ADVANCED SEARCH

Reply
 
Thread Tools Display Modes
Old Sep 16th, 2007, 1:46 AM   #21
Indigno
Professional Programmer
 
Indigno's Avatar
 
Join Date: Dec 2005
Location: Anywhere non-productive
Posts: 267
Rep Power: 0 Indigno is an unknown quantity at this point
Send a message via AIM to Indigno Send a message via MSN to Indigno Send a message via Yahoo to Indigno
Dawai compared programming to language, while Jabo compared it to mathematics, which I find to be more accurate. A computer is basically a calculator with logic, and is highly math based.

Also, language evolves into completely different languages. I see new programming languages as a stack. Assembly is at the bottom, performing the most basic functions, while higher languages are accomplishing what many lines of assembly with one line.

So I think it's beneficial to learn lower languages, because it can help you understand what is going on beneath the code of higher langauges.
__________________
Perhaps I should have a sticky topic for all of the times I "return" to this forum instead of a new one every time.
Indigno is offline   Reply With Quote
Old Sep 16th, 2007, 2:05 AM   #22
Jabo
Not a user?
 
Join Date: Sep 2007
Posts: 272
Rep Power: 2 Jabo is on a distinguished road
Quote:
Originally Posted by Indigno View Post
So I think it's beneficial to learn lower languages, because it can help you understand what is going on beneath the code of higher langauges.

Also, debugging programs would be easier with an understanding of this. Have you ever broke a program and it would be in the middle of a routine that you didn't write in your program? When I saw this the first time, I'm asking myself where the heck did this come from?

The programming degrees today are really a joke since they don't show you this is what the compiler and linker do. In my associates degree, they spend a total of one week on teaching us any debugging, and another 2 weeks on error handling; the 2 most important skills in programming, arguably. Should I be fortunate enough to get a job in the industry, I will be horribly handicapped if I don't take the time to figure some of this out before hand. And right now, I just can't find the time to sit down and do it between a baby on the way very shortly and working 6 days a week, 3 of those 12 hour days.
Jabo is offline   Reply With Quote
Old Sep 16th, 2007, 2:13 AM   #23
Canis Major
Some C++ guy
 
Canis Major's Avatar
 
Join Date: Aug 2007
Posts: 14
Rep Power: 0 Canis Major is on a distinguished road
Hmm... I've been learning newer languages these days, and C#, for example, is quite easier and looks "safer" than what I have experienced with C and Assembly. But then, if we all move on to the easier means of programming, then we might forget the basis of everything that made it easier. I mean, my C and Basic (I know, haha) programming backgrounds made it easier for me to get into Java. Perhaps because of the dangers of the older programming languages, I am able to appreciate the improvements on later languages, rather than complaining "how difficult programming is." I mean, I've heard my classmates complain. Maybe not everyone is made to be a programmer, and I consider myself lucky haha.
Canis Major is offline   Reply With Quote
Old Sep 16th, 2007, 12:54 PM   #24
Jimbo
Battle Programmer
 
Jimbo's Avatar
 
Join Date: Feb 2006
Location: Bellevue, WA, USA
Posts: 763
Rep Power: 3 Jimbo is on a distinguished road
Quote:
Originally Posted by Jabo View Post
I think all programming classes should start people off learning Fortran or Cobol or even Assembly. If they can learn to program effectively in these languages without killing somebody, then they should make a good programmer.
I have to disagree with this. A good programmer doesn't need to know the history of programming, or how language X works. What they should know is how a computer works (so maybe assembly is a keeper, or at least a level of understanding how it works), but otherwise knowing how to use some subset of languages effectively should absolutely not be a pre-req for being a good programmer in another "newer" language.
__________________
<insert disclaimer here>
<insert shameless plug for Visual Studio here>
Jimbo is offline   Reply With Quote
Old Sep 16th, 2007, 5:05 PM   #25
Darkhack
Hobbyist Programmer
 
Darkhack's Avatar
 
Join Date: Dec 2005
Location: Kansas City
Posts: 105
Rep Power: 3 Darkhack is on a distinguished road
Send a message via AIM to Darkhack
Quote:
Originally Posted by DaWei View Post
Yeah. Bjarne Stroustrup says he hasn't learned C++ after all this time, and he invented it.
That doesn't surprise me at all. Nobody really "learns" C++ anyway. You just learn your own little subset of it with the features that are most useful to you and pray that you never have to read source code which contains features outside of your knowledge.

I'm a PHP programmer and there is a very good reason why I never used PHP's OOP features. It's like shoving a round peg into a square hole. That's an analogy I use a lot when describing OOP. It just seems like as a developer, one spends more time trying to figure out how to solve a problem "the OOP way" rather than focusing on code quality or optimization. OOP sounds good in theory when you hear people talk about objects with their own set of variables and methods, but in practice it is nearly always easier to think of a solution in procedural programming.

I read several books on C++ and quickly realized how complex of a language it was. There are way too many features. You have to force a problem to fit into the OOP methodology. The one or two obvious ways of solving a problem in procedural programming yield a dozen or so ways of going about it when thinking in objects. Tracking down code is a lot harder. Although a class can provide a good interface and is supposed to be a layer of abstraction, it doesn't work that way in the real world. You almost always need to alter the code of that class to make changes to your program and I find in some ways that OOP makes it like spaghetti code with the way you have to jump around in order to figure out how all the objects are interfacing with each other and don't even get me started on inheritance; holy crap does that make life difficult. Plus it really makes you question how solid of a language it is if writing a compiler for it is on the magnitude of climbing Mount Everest. There are definitely going to be performance issues and compiler bugs when converting such an abstract concept into machine code.

C is such a clean language. It is my favorite at the moment.
Darkhack is offline   Reply With Quote
Old Sep 16th, 2007, 6:22 PM   #26
DaWei
Resident Grouch
 
DaWei's Avatar
 
Join Date: Jun 2005
Posts: 6,453
Rep Power: 10 DaWei is on a distinguished road
I don't worry a lot about inheritance, since no one saw fit to leave me a fortune. On the other hand, I have to disagree with you about OOP. Perhaps some wannabe gurus have misled you.

Objects are objects. Procedures are procedures. Your lawn is an object, a particular instantiation of a generic lawn. Your lawnmower is an object, a particular instantiation of a generic lawnmower with its own subtly different instantiations of carburetors, throttle linkages, and kill-switches.

Mowing your lawn is a procedure. Maybe it's even a method of the lawn, but it shouldn't be a method of the mower. It might not even be a good method for the lawn object, because you never know who left a freakin' skateboard right in the middle of that sucker.

I would suggest that if you have found OOP to be a detriment, then you have had the wool pulled over your eyes by a supremely ignorant someone. Perhaps you should regroup.
__________________
Abstraction doesn't make it impossible to write bad code; it makes it possible to write superior code.
Contributor's Corner: Grumpy on C++ Exceptions DaWei on Pointers
DaWei is offline   Reply With Quote
Old Sep 16th, 2007, 10:10 PM   #27
Jimbo
Battle Programmer
 
Jimbo's Avatar
 
Join Date: Feb 2006
Location: Bellevue, WA, USA
Posts: 763
Rep Power: 3 Jimbo is on a distinguished road
Quote:
Originally Posted by Darkhack View Post
I read several books on C++ and quickly realized how complex of a language it was. There are way too many features. You have to force a problem to fit into the OOP methodology. The one or two obvious ways of solving a problem in procedural programming yield a dozen or so ways of going about it when thinking in objects.
Funny, one of my favorite things about C++ is that (unlike, say, Java) it doesn't restrict you to OOP design, though it does support it with relative ease. I also wrote a website in PHP and used OOP for interacting with the database, which worked out pretty well I thought.
__________________
<insert disclaimer here>
<insert shameless plug for Visual Studio here>
Jimbo is offline   Reply With Quote
Reply

Bookmarks

« Previous Thread in Forum | Next Thread in Forum »

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Should I bother learning new languages? Druid Coder's Corner Lounge 6 Mar 30th, 2007 3:50 AM
Functional Programming Languages ZenOswyn Coder's Corner Lounge 7 Dec 3rd, 2006 3:05 PM
how many types of languages are there? linuxpimp20 Other Programming Languages 1 Sep 7th, 2005 4:53 PM




DaniWeb IT Discussion Community
All times are GMT -5. The time now is 4:50 PM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC