Better at 90's programming than modern programming?

Page 2 of 4 [ 49 posts ]  Go to page Previous  1, 2, 3, 4  Next

Robdemanc
Veteran
Veteran

User avatar

Joined: 30 May 2010
Age: 47
Gender: Male
Posts: 2,872
Location: England

02 Sep 2012, 2:14 pm

Once I get to know them I love all IDE's and bug fixing is great. I think the OOP approach is a huge improvement over the procedural approach and now I just learnt services and love them too.



ruveyn
Veteran
Veteran

User avatar

Joined: 21 Sep 2008
Age: 87
Gender: Male
Posts: 31,502
Location: New Jersey

02 Sep 2012, 3:55 pm

marshall wrote:
ruveyn wrote:
Back in the late 80s and 90s the big dispute was procedural programming versus object oriented programming.

ruveyn


I don't think the two are opposed or mutually exclusive. Self-contained algorithms that perform a specific mathematical task on a chunk of data are best described conceptually in procedural terms. Full blown software applications are best described in terms of objects and classes. But objects contain pieces of procedural code, and procedures can manipulate the objects they have access to. IMO OO programming is simply an extension of procedural programming. Objects structure and organize a program while procedures do any heavy lifting deep within.


At the heart of any program, regardless of the programming paradigm lives a procedure or a set of procedures. OOP is a slick way of packaging programs that would leave the interfaces free from disruption and make the "guts" of the program easy to replace or enhance without doing violence to the external interfaces of the components. All programs are procedures. From Turing machine state specifications to OOP packages.

ruveyn



2fefd8
Tufted Titmouse
Tufted Titmouse

User avatar

Joined: 25 Jul 2012
Age: 36
Gender: Male
Posts: 44

03 Sep 2012, 6:27 am

Trencher93 wrote:
C++ -is- brain damage. It's what happens when the ivory tower has complete freedom to create the perfect language. The result is incomprehensible. I was looking at some C++ 2011 new features recently. They're mostly ugly workaround for situations where previous C++ standards painted themselves into corners. Anyhow, if you ever get a chance, get the original edition of The C++ Programming language. I have a copy, and it's amazing how there was a good idea in all the mess.


C++ is certainly a horrible language but it's not a product of academia. The nastiness of C++ is a more a product of design by committee, a bad habit of adding features which make code slightly more efficient in rare cases (often the default behavior), unnecessary redundancy, a complete unwillingness to correct braindead design decisions in future versions of the standard in order to maintain total backwards compatibility and a tendency to tack on new layers of abstraction to the language which clash badly with those that are already present.

Industry has had a lot of influence on the C++ standard. A better example of a language designed by academia would be Scheme or Haskell.

MyFutureSelfInMe wrote:
Man, have you seen Objective C? C++ is really not as bad as it can get.


I don't know too much about Objective C but it looks fairly clean from what I know. What's so bad about it?

In any case it is true that there are languages which are even more horrible than C++ (e.g. COBOL).



Robdemanc
Veteran
Veteran

User avatar

Joined: 30 May 2010
Age: 47
Gender: Male
Posts: 2,872
Location: England

03 Sep 2012, 1:38 pm

How does C++ compare with Java?



UnLoser
Veteran
Veteran

User avatar

Joined: 28 Mar 2012
Gender: Male
Posts: 655

03 Sep 2012, 3:52 pm

I'm almost shocked to hear so many of you calling c++ horrible, considering how popular it is. Is it really so complicated as to interfere with writing programs on a regular basis? I haven't learned any compiled languages yet, and I was considering learning c++ first, but if it's that much worse than other languages like Java, then I won't even bother.



MyFutureSelfnMe
Veteran
Veteran

User avatar

Joined: 26 Feb 2010
Age: 44
Gender: Male
Posts: 1,385

03 Sep 2012, 4:39 pm

UnLoser wrote:
I'm almost shocked to hear so many of you calling c++ horrible, considering how popular it is. Is it really so complicated as to interfere with writing programs on a regular basis? I haven't learned any compiled languages yet, and I was considering learning c++ first, but if it's that much worse than other languages like Java, then I won't even bother.


It's not too complicated for me, but it has its shortcomings and the learning curve is probably too high. As an experienced developer with 20 years of C++, the language doesn't really get in my way. I'm a sample of one though.



MyFutureSelfnMe
Veteran
Veteran

User avatar

Joined: 26 Feb 2010
Age: 44
Gender: Male
Posts: 1,385

03 Sep 2012, 4:40 pm

Robdemanc wrote:
How does C++ compare with Java?


You have to explicitly delete your objects, or rely on scope based deletion. There is no garbage collector. I would say that is the biggest difference.

IMO, garbage collection is a brain damaged concept and I don't agree with it. This is one of the top reasons I am anti-Java. However, C++ is silent when memory is leaked, and I think that is also wrong.



2fefd8
Tufted Titmouse
Tufted Titmouse

User avatar

Joined: 25 Jul 2012
Age: 36
Gender: Male
Posts: 44

03 Sep 2012, 4:44 pm

Robdemanc wrote:
How does C++ compare with Java?


I'm not a fan of Java either. In contrast to C++, Java tries to force you to do everything in one way, tends to require large amounts of boilerplate code for simple tasks and treats programmers as idiots who need to be projected from themselves for their own good.

In summary, C++ makes it easy to shoot yourself in the foot and even puls the trigger for you. Java does its best to stop you from shooting yourself in the foot even when that's exactly what you want to do.

UnLoser wrote:
I'm almost shocked to hear so many of you calling c++ horrible, considering how popular it is. Is it really so complicated as to interfere with writing programs on a regular basis? I haven't learned any compiled languages yet, and I was considering learning c++ first, but if it's that much worse than other languages like Java, then I won't even bother.


Popularity is not a measure of quality. If you want to learn a compiled language, I'd recommend C.

As for C++, it's not that you can't write good code in C++; it's just that it's more painful and time consuming than in some other languages. Why should you fight with the language constantly when there are better ways? Anyway, you may want to learn C++ anyway at some point. Even though it's an ugly mess, there is a lot of C++ code out there so it's sometimes necessary to know a bit of C++ of you have to use a C++ library or other C++ code.



MyFutureSelfnMe
Veteran
Veteran

User avatar

Joined: 26 Feb 2010
Age: 44
Gender: Male
Posts: 1,385

03 Sep 2012, 4:45 pm

2fefd8 wrote:
MyFutureSelfInMe wrote:
Man, have you seen Objective C? C++ is really not as bad as it can get.


I don't know too much about Objective C but it looks fairly clean from what I know. What's so bad about it?

In any case it is true that there are languages which are even more horrible than C++ (e.g. COBOL).


ObjC is basically C with infused Smalltalk OO. The syntax between the two languages is very different, and I don't think they play well together. I also happen to think the Smalltalk syntax is garbage.

C++ requires classes that share the same method to share a superclass. This is not a requirement in ObjC. However, all method calls in ObjC are slightly slower than virtual calls in C++, and there are times that virtual calls in C++ themselves are too slow for what I want. I don't find the requirement of sharing a superclass imposing, or even wrong in theory.



tecpenguin
Emu Egg
Emu Egg

User avatar

Joined: 25 Feb 2013
Gender: Male
Posts: 1

26 Feb 2013, 10:35 pm

Hi,

I just noticed this interesting series of posts.
As one of the greatest programmers ever, I just have to clarify a few things.

Firstly non object orientated languages are not really 'ninetees' languages.

They ( C, cobol, basic, assembler ) are applicable to efficient embedded applications.

They are used because they are closely tied to what is happening in the processor.
There is not much change between what you write and what is actually happening.
Making them efficient in memory and speed.


C++
C++ is an object orientated experiment, a monstrosity that is abused. It has given rise to all manner of convoluted object orientated abstractions that aim to serve programmers rather than applications.
It is as complicated as the obscene abstractions dreamed up by the misguided fools who abuse it.
It is a stepping stone to better languages (see below) and should be abandoned to the waste basket of history.


C# in a proper IDE
This is the next step in object orientated programming, an example of where a good IDE has caught up with the power of the language.
Features such as, graphical GUI design, and Auto-complete make it aproximately 10 x fast than C++ programming in all circumstances.
It replaces C++.

Java
Refreshing improvement on C++, but not quite as easy as C#, c# copied alot of it's core advantages (a runtime-engine, garbage collection, large library of basic functionality ...strings, collections of data)
This also replaces C++
Java is prone to abuse, as are all object orientated languages (See Android development under Eclipse)


Labview.
Completely different from all of the above, check it out some time.



VB dot NET.
Almost exactly the same as C#
You may as well use C#.



Trencher93
Velociraptor
Velociraptor

User avatar

Joined: 23 Jun 2008
Age: 124
Gender: Male
Posts: 464

27 Feb 2013, 4:02 pm

The opposite argument could be made. The "proper" IDEs created by Microsoft, Apple, IBM, etc are attempts to compensate for the weaknesses of the languages they've created, by putting a layer on top of them to deal with their shortcomings. The IDE watches you try to program in the horribly broken language a company want you to use, and warns you when you're making mistakes with it. The result is a sort of arms race - languages get more screwball with every release, and IDEs get more bloated to compensate. Has anyone ever innovated with an IDE? Seems like that sort of thing starts showing up when a technology has reached maturity.



Ichinin
Veteran
Veteran

User avatar

Joined: 3 Apr 2009
Gender: Male
Posts: 3,653
Location: A cold place with lots of blondes.

27 Feb 2013, 4:56 pm

Comp_Geek_573 wrote:
"make debugging nearly impossible"


Not even close to being impossible. I guess it depends on the debugging capabilities of the IDE *AND* the coder. I once coded on Pocket PCs back in the early 2000's. Debugging was crap, so i set up a TCP socket on the device so i could dump variables from it over 802.11B to a telnet session on the PC :P

Also, testing methodologies have become better (automated Unit testing for example), some IDEs points out if you're trying to do something stupid (like initialise a varaible without a default value), you can still shoot yourself in the foot - if you want to. Intellisense has helped alot too, dont have to sit and browse MSDN all day.

ruveyn wrote:
Back in the late 80s and 90s the big dispute was procedural programming versus object oriented programming.


The two have merged, you can have procedures (functions) on objects and procedures can contain objects, or adress external objects. Imaginagion is the sky. Pretty much every major language is object orientated and support classes. Dotnet and Java has been a good development, i.e. C# is basically the best of VB (the GUI/window properties) and the best of C++, .NET killed the horrible MFCs, and it does not matter what language you write your code in (C++/VB.NET/C#) because its the same compiler (JIT).

Speaking of that last part, i'm looking forward to the day when everything is 100% type safe and you can mix and match code from the major languages in the same project without having to have multiple projects open and have a minor hell maintaining all that code.

Still, i look back and smile at the days when i were coding on the C64... :)


_________________
"It is far better to grasp the Universe as it really is than to persist in delusion, however satisfying and reassuring" (Carl Sagan)


Keyman
Velociraptor
Velociraptor

User avatar

Joined: 23 Feb 2012
Age: 30
Gender: Male
Posts: 443

28 Feb 2013, 3:32 am

C# has too many ties to Microsoft.

Guess C was designed by professionals, and C++ was designed by bureaucrats :P



Trencher93
Velociraptor
Velociraptor

User avatar

Joined: 23 Jun 2008
Age: 124
Gender: Male
Posts: 464

28 Feb 2013, 8:27 am

Keyman wrote:
...and C++ was designed by bureaucrats :P


Saying C++ was "designed" is going too far :) C++ sort of just happened randomly. The new 2011 standard has warts to fix other warts!

The return value after the function arguments in C++ 2011 has got to be when C++ jumped the shark. Surely a compiler would not need the coder to move the function return value? Surely in 2011, compiler technology is advanced enough that the compiler could figure this stuff out?

That's what I'm saying about IDEs - they cloak the real problems - the new IDEs will probably automatically move the function return value to after the arguments for you by next year, but a compiler should be smart enough to figure out the return value - I mean, the days of one-pass C compilers are long over, right? If a compiler can figure out template specifications and functors, surely it could wait for a few tokens before it resolved the return value of a function?



ruveyn
Veteran
Veteran

User avatar

Joined: 21 Sep 2008
Age: 87
Gender: Male
Posts: 31,502
Location: New Jersey

28 Feb 2013, 8:39 am

The further away from the command line or the machine instruction we get, the more modern we are.



Ichinin
Veteran
Veteran

User avatar

Joined: 3 Apr 2009
Gender: Male
Posts: 3,653
Location: A cold place with lots of blondes.

28 Feb 2013, 8:46 am

Trencher93 wrote:
The return value after the function arguments in C++ 2011 has got to be when C++ jumped the shark. Surely a compiler would not need the coder to move the function return value? Surely in 2011, compiler technology is advanced enough that the compiler could figure this stuff out?

That's what I'm saying about IDEs - they cloak the real problems - the new IDEs will probably automatically move the function return value to after the arguments for you by next year, but a compiler should be smart enough to figure out the return value - I mean, the days of one-pass C compilers are long over, right? If a compiler can figure out template specifications and functors, surely it could wait for a few tokens before it resolved the return value of a function?


Can you give a more detailed example of this?


_________________
"It is far better to grasp the Universe as it really is than to persist in delusion, however satisfying and reassuring" (Carl Sagan)