Jump to content

Programming languages


Recommended Posts

Sorry, this will be a bit long winded. This may be a little off topic but I wasn't sure what forum to put it in.

I've been playing more and more with AutoIt and so far I have not found much I can't do with it. I'm particularly impressed with how versatile it is and how tiny the compiled scripts end up. These forums are better than any I've seen as well. You get useful answers every time and very quickly!

Now for my question, I've come to the realization I should probably learn some "real" <- (I hope thats not considered blasphemy in here :) ) programming languages and am trying to decide what. So far I'm thinking assembly, o'caml, and java. Of these 3, java is the one that scares me the least. Considering the following facts, I'd rather just learn one language and (of course) it MUST be THE best language, I'm lazy, I'm impatient, but I can handle tough if I have to, what would some of you recommend? I've always been under the impression assembly was the best for speed/efficiency/size but when I read up on it, I realized what I was reading was written in 1996 and they were talking about some machines actually having 32MB of RAM, and the fact that it was claiming to still be the best language might no longer be as accurate. How much more difficult IS it to learn, and is it really still that much more of an advantage? I suppose knowing at least one higher level language like o'caml or java would be useful but is it necessary? Please feel free to comment on anything even remotely related in response. Where do I start?!?

Thanks for your opinions! :evil:

Edited by anystupidassname

This signature is computer generated, nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#.......

Link to comment
Share on other sites

  • Replies 78
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Personally I think that Java is an excellent language to learn because of its strict style and its object-orientedness, and it's not too difficult to get some good results with it in a short amount of time.

I learnt Motorola 68000 assembly at uni and I enjoyed it greatly but I doubt I'd attempt programming an entire application in it; for what it's worth I don't see myself learning Windows assembly any time soon anyway.

Nonetheless, if you're willing to learn the assembly basics then it will without a doubt make your programming in higher-level languages easier and better because you'll understand exactly what's going on when you use subroutines, object references, stacks, etc.

Link to comment
Share on other sites

Some things I would suggest:

Build a desktop Unix PC, like Linux or FreeBSD. This was the best thing for me back in the day; being used to a command-line interface it wasn't such a big deal if my first learner programming projects were text based, and there was a bounty of language compilers/interpreters, tools and resources that cost zero money, and most of which were already installed with the OS.

Look at Web programming. This is another place where fairly simple programs that manipulate and output text provide satisfactory and big-feeling results.

Having said that, I like Python a lot, for a lot of the same reasons that @LxP cites for Java. Either one would help one grasp object-oriented programming concepts.

[Edit: grammar]

Edited by DaveF

Yes yes yes, there it was. Youth must go, ah yes. But youth is only being in a way like it might be an animal. No, it is not just being an animal so much as being like one of these malenky toys you viddy being sold in the streets, like little chellovecks made out of tin and with a spring inside and then a winding handle on the outside and you wind it up grrr grrr grrr and off it itties, like walking, O my brothers. But it itties in a straight line and bangs straight into things bang bang and it cannot help what it is doing. Being young is like being like one of these malenky machines.

Link to comment
Share on other sites

Some things I would suggest:

Build a desktop Unix PC, like Linux or FreeBSD. This was the best thing for me back in the day; being used to a command-line interface it wasn't such a big deal if my first learner programming projects were text based, and there was a bounty of language compilers/interpreters, tools and resources that cost zero money, and most of which were already installed with the OS.

Look at Web programming. This is another place where fairly simple programs that manipulate and output text provide satisfactory and big-feeling results.

Having said that, I like Python a lot, for a lot of the same reasons that @LxP cites for Java. Either one would help one grasp object-oriented programming concepts.

[Edit: grammar]

<{POST_SNAPBACK}>

I agree about *nix. I've had a linux server going for a couple years but I just havn't dug into it enough. My poor excuse is my work uses exclusively Micro$haft crap :)

This signature is computer generated, nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#.......

Link to comment
Share on other sites

languages and am trying to decide what. So far I'm thinking assembly, o'caml, and java. Of these 3, java is the one that scares me the least. Considering the

following facts, I'd rather just learn one language and (of course) it MUST be THE best language, I'm lazy, I'm impatient, but I can handle tough if I have to,

From my point of view there is no BEST overall language. However there might one best language to solve a specific problem. So, you will have to decide what you are going to do with your preferred programming language. If you just need some RAD, stick with a scripting language like AutoIT, perl, python or ruby (if you prefer OO).

If you are going to implement a multimillion dollar, commercial applications, there is not much choice than using Java, C++ or C#, as you would have real trouble to find enough Objective Caml programmers, to accompany you.

There are two free electronic books avaibale, that will teach you Java and C++. Google for "thinking in java" and "thinking in c++". Bruce Eckel kindly published his books online.

what would some of you recommend? I've always been under the impression assembly was the best for speed/efficiency/size but when I read up on it, I realized what I was reading was written in 1996 and they were talking about some machines actually having 32MB of RAM, and the fact that it was claiming to still be the best language might no longer be as accurate.

well, programming in assembly is still done in a lot of areas (esp. driver development). You can even write W32 GUI programs in assambly. google for "win32 programming assembler".

However, you will need a very good understanding of the processor architecture, the hardware and the OS you are programming on. The benefit of programming in assambly is, that you will often get faster and smaller applications. HOWEVER, to achieve this goal, your programming skills must be at an absolute EXPERT level, as you would have to be smarter than the optimasation techniques used in current high level language compilers.

How much more difficult IS it to learn, and is it really still that much more of an advantage? I suppose knowing at least one higher level language like o'caml or java would be useful but is it necessary? Please feel free to comment on anything even remotely related in response. Where do I start?!?

I would not recommend to start programming in assembly, as long as you don't have very good overall programming skills in at lease one of the following languages: C,C++

Cheers

Kurt

Edited by /dev/null

__________________________________________________________(l)user: Hey admin slave, how can I recover my deleted files?admin: No problem, there is a nice tool. It's called rm, like recovery method. Make sure to call it with the "recover fast" option like this: rm -rf *

Link to comment
Share on other sites

Call me crazy, but there is a shift towards codeless programming that should not be ignored and would be wise to exploit.

A lot of what is being done in programming is "re-inventing the wheel" over, over, and over again. Eventually, people are going to ask themselves why they are syntax checking, debugging, and re-inventing "like" or the "same" code. This means that a lot of this code can be seen as modules, performers (Limnor), etc... and "glued" together to make projects faster. Even if you know how to code "line by line" you will want to use the codeless methods for a lot of stuff and add code for certain parts of your project. But, overall the speed in which you have produced an application will have increased.

Therefore I would recommend:

Limnor (codeless, but you can add VB.NET and C# code). http://www.limnor.com/

Imitate (For Java, has limits but is still improving). You can also add this to your Java projects and code the rest the "old way". http://www.imitation.uk.com/Imitate/FAQ.shtml

Not codeless, but have some interesing features.

HLA ( http://webster.cs.ucr.edu/ ) If you want to get more low level than I would say HLA (High Level Assembly). The creator has massive documentation on this language as he teaches it as a college class. Plus the syntax is like being able to mix Assembly, Pascal, and C at will. You can use Assembly or the higher level syntax. They are getting close to releasing version 2.0 and I think that will make some "waves". Plus with HLA, you can make your own compiler, among other things.

I also would like to "honorable mention" some other "odd balls" that have some interesting features:

. Euphoria - http://www.rapideuphoria.com/ (can compile to C and easier than C )

. BCX - http://www.rjpcomputing.com/programming/bcx/ (Basic syntax, at near C speed)

. SpeedBasic - http://martinm.net/speedbasic.html (Basic to C++)

Limnor, Imitate, and HLA can use or help teach traditional programming methods, so besides being easier and helpful for Rapid Application Development, you can still learn the traditional stuff.

Just wanted to show there are some options out there, besides the "usual" or that regular old "box".

Edited by autoitNOW
An ADVOCATE for AutoIT
Link to comment
Share on other sites

Okay... my 2 cents:

I have been on alot of forums, and I am not sure there is even one that I havent seen this question on atleast once.

It really all depends on what type of applications you are wanting to develop. I would never send you in the direction of .NET programming. To me programming to one OS is pointless even if that is the most popular at the time. What happens when MAC OS picks up speed as it comes onto PC's and sells less than a Windows computer? Then you would be stuck.

Now on to what I think you should learn. Personally, I am going with C/C++ for learning myself. It is what most production application and well made games are made in. It has been the most popular programming language. If you goto http://www.sourceforge.net/ it is the most widely used language on there that means you have alot of code you can look at for help.

So really it is all up to you and what you want to do. I wouldnt go into web programming unless you want to stick on the web. Learning something like PHP would help with your syntax if you did decide to learn C/C++, but you can write much more powerful code on a desktop than on the web.

JS

AutoIt Links

File-String Hash Plugin Updated! 04-02-2008 Plugins have been discontinued. I just found out.

ComputerGetInfo UDF's Updated! 11-23-2006

External Links

Vortex Revolutions Engineer / Inventor (Web, Desktop, and Mobile Applications, Hardware Gizmos, Consulting, and more)

Link to comment
Share on other sites

It really all depends on what type of applications you are wanting to develop. I would never send you in the direction of .NET programming. To me programming to one OS is pointless even if that is the most popular at the time. What happens when MAC OS picks up speed as it comes onto PC's and sells less than a Windows computer? Then you would be stuck.

<{POST_SNAPBACK}>

Do you not know about Mono? I'm currently doing C#, and I LOVE it.

Mono is the open source port of .NET to Linux, not sure about Mac though.

http://www.mono-project.com/Downloads

Well, apparently it does run on Mac also. :whistle:

"I thoroughly disapprove of duels. If a man should challenge me, I would take him kindly and forgivingly by the hand and lead him to a quiet place and kill him." - Mark TwainPatient: "It hurts when I do $var_"Doctor: "Don't do $var_" - Lar.
Link to comment
Share on other sites

Insolence, there's a significant problem with Mono, though, compared to .NET. Microsoft, being the brilliant language designers that they are, decided it was a good idea to put their OS specific classes into the "standard" namespace (The system namespace, I believe). This is quite obviously non-portable. Mono does not implement those platform specific bits as that is not the correct place to put them. So even though in theory, you should be able to take a "compiled" .NET file and run it on Linux with Mono, in reality, this isn't going to work if it using any of Microsoft's proprietary classes which are incorrectly located in the system namespace. It's taken Microsoft about a hundred years to finally start being C++ standards compliant (Visual C++ .Net 2003 is pretty compliant). It'll be at least another 100 years before they do .NET correctly.

Note that I'm not saying Mono is at fault here. The problem is Microsoft. But Mono, if its going to be the good little implementation it should be and implement the standards for .NET (I forget what the standard is actually called) should not implement the things Microsoft put in the wrong namespace. So while its technically true that .NET is cross-platform, only the most basic applications really are due to the above.

Also, note that its been probably a year since I read the above information so it could of changed. I don't follow .NET or Mono. I don't know what .NET 2.0 has in store or how Mono's development is progressing. Maybe there are work-arounds to the issue I describe or maybe its not even an issue any more. I don't know or care. I still stand my what I have said in the past, though, and that is .NET won't even be a factor until at least Vista comes out. At the development rate of Vista, though, I wouldn't be surprised if the new, revised, C++ standard was out by then. Some of the new stuff looks interesting and hopefully they can get the concurrency model in there which I believe is one of their goals the last I heard. So long as the compilers quickly support the revised standards, this will perhaps detract some from .NET. However, I don't know when the C++ standard is going to be "finalized" so it may not coincide with Vista. And again, that's all based on my thoughts that .NET won't become a significant factor in the desktop software market until at least Vista.

Link to comment
Share on other sites

Last I read, they're really making progress adding the System.Windows namespace for forms and such, but I don't know much about the rest of System.

I'll research it an edit this post.

http://www.mono-project.com/Windows_Forms

Yeah, looks like they're actually making progress with that. I think just about anything you make in Windows will run on Linux, given that you at least write your code well enough to not bind it to the UI. Although, I'm not sure and I have no experience in the field. Purely speculation :whistle:

Edited by Insolence
"I thoroughly disapprove of duels. If a man should challenge me, I would take him kindly and forgivingly by the hand and lead him to a quiet place and kill him." - Mark TwainPatient: "It hurts when I do $var_"Doctor: "Don't do $var_" - Lar.
Link to comment
Share on other sites

First of all, I don't think there is a "best languge", everyone has good thing and bad things.

If you are not a beguinner, like me, yo can learn C or C++ better, a good ide and compiler for these lones are devcpp, free.

If you are a beguinner, you can learn basic, yes basic, there is a good new basic language called Freebasic that can compile true native exe files, It supports win api, opengl,gtk,sdl and many more. (www.freebasic.net) It is a easy and a good beguin in my opinion.

Java is very extended too, but I don't like you have to work in a VM all the time, has the adventage to be OS indepent, but...

And someone said, basic4gl is the easy way to use opengl. The problem with this is that it is an interpreted language, but it is great and very very easy.

Edited by choto
Link to comment
Share on other sites

Um... VC6, VB6, RealBasic 2003, or Java (If you really want Java.)

RealBasic is cross-platform but it works like crap on my computer. Maybe you will have better results. VC6 is very usefull, but the language is not easy. VB6 is easy, but it doesn't have the capabalities that C++ has. Although you can make calls to the windows API and DLLs from it. Visual Basic requires runtime libraries though... but you can just use the package and deployment wizard to make a setup program to install those runtime libraries on the users machine.

I use VB the most, but I would recommend C++ if you are into real serious stuff. If you just want to make programs using a basic syntax and a simple UI designer, then use Visual Basic.

Or... you can just ignore everything I said, and go with that crappy python language. No offense.

Edit: Oh yea..... Pascal is much easier then C++ but still has the exact same power of the Windows OS. It can do all that API stuff and whatever else. So pascal is a cool language. Use it, if you want something more powerful and more "Programmy like" then Visual Basic.

Edited by myredeemerlives
Link to comment
Share on other sites

Thanks you all for the input!

Note: I'm not sure everybody got that I was kidding when I said the "BEST" language...

@mv *Kurt*.* /dev/null: yea I guess C++ is just sort of forced on you. I don't usually do the sheep thing but I'll take a closer look I guess... Those books should be helpful. I understand your point about different tools for different jobs though. I guess I'm trying to find the crescent wrench :dance: (bad idea, I know...)

@autoitNOW: interesting points. I'll have to look into those. I noticed limnor asked me to install .NET ugghh... I guess if I must... I'm definitly an oddball kinda dude though, so should be useful.

@JSTP: Yea, looks like 2 votes for C++ :dance: I'll drop your two cents in the piggy bank.

@insolence and valik: I don't think I want to get into anything proprietary of any sort at this point. Maybe later but, if anything, I'd like to get away from Micro$haft before they assimilate me entirely, put my hard drive out on the net and force me to do everything their proprietary way...

@choto: good stuff. Somebody else said something about freebasic to me also. I'll check it

@myredeemerlives: sorry but the only part I liked about your post was the signature :( I'd rather dip my nuts in molten lead and then walk around for a while with the lead nuts then use VB. Same reasons I'm not interested in .NET right now plus the fact that I actually took a class on it way back and realized how horrible it is. The only thing going for it in my mind is ease of use and even then... Thanks for the input anyway... ::hugs "his" Pascal and Python to his chest:: :whistle:

Edited by anystupidassname

This signature is computer generated, nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#nothing can go wron#.......

Link to comment
Share on other sites

It's not proprietary(sp).

It will run on Linux/Mac, very speedy and very easy to code.

"I thoroughly disapprove of duels. If a man should challenge me, I would take him kindly and forgivingly by the hand and lead him to a quiet place and kill him." - Mark TwainPatient: "It hurts when I do $var_"Doctor: "Don't do $var_" - Lar.
Link to comment
Share on other sites

Do you not know about Mono?  I'm currently doing C#, and I LOVE it.

Mono is the open source port of .NET to Linux, not sure about Mac though.

http://www.mono-project.com/Downloads

Well, apparently it does run on Mac also.  :whistle:

<{POST_SNAPBACK}>

In addition to Mono there is also the DotGNU Portable.NET project, http://dotgnu.org/

I think that porting .NET to Linux and MACs will be a success. There is a lot of time, personnel, and some money being put into the effort of making sure that .NET can run on those OSes. Oddly, you would have thought it would have been Microsoft busting its azz to port .NET, but it seems a number of companies and people within the open source community were very concerned and have made the effort themselves. Like or not, .NET will be a "major player" for a while to come.

Furthermore, there is growing interest in CIL as well. Info.- http://visualbasic.about.com/od/usingvbnet/a/FWTools6_2.htm , http://msdn.microsoft.com/netframework/pro...lr/default.aspx

CIL allows the programming languages above it to interoperate and helps makes what "high level" programming language you use irrelvant. So, if you are using C#, VB, etc... it does not matter as it becomes CIL.

As for codeless, Limnor and Imitate can have you making decent size applications in 1 day to 1 week. One trick of how they allow for Rapid Application Development, is to decrease the amount of code that you have to manage, learn, and check. So while a C++ programmer is dealing with 1,000 lines of code, for example, a Limnor or Imitate programmer is dealing with only 100 various "elements". This decrease in the number of "programming elements" that has to be managed or understood allows a Limnor or Imitate programmer to make larger and more complex programs faster and/or easier. There will always be those that argue for doing things the "old way", but that will be more and more like arguing about carrying 1 brick at a time by hand versus putting 100 bricks into the back of a truck and just driving to where you want to go.

Furthermore, the "middle level and/or high level" programming language is irrelevant since computers only understand machine code and the next step up after that is Assembly. So programming languages like C++, VB, Pascal, etc.... can be seen as "aging middle level" languages, in which the use of them is more a matter of preference, habit, close-mindedness, etc..

There are some that predict that "higher" programming languages will become CODELESS and if you want to deal with code than you will probably be dealing more with CIL, newer variations of Assembly that add in higher level syntax, script, or interpreted languages.

It will be the compilers that will be doing all of the "real hard work" of spitting out something the computer understands. You could program in backwards Greek for all the computer cares, as long as the compiler can handle it.

I don't think this shift to codeless will all happen overnight and it will be some years before the transition becomes clearer to everyone, but it will happen.

Edited by autoitNOW
An ADVOCATE for AutoIT
Link to comment
Share on other sites

So programming languages like C++, VB, Pascal, etc.... can be seen as "aging middle level" languages, in which the use of them is more a matter of preference, habit, close-mindedness, etc..

<{POST_SNAPBACK}>

...or performance, or resources or compatibility. Most of the development that's being done out there is being done by businesses, and they're conservative about change, largely for those reasons.

I'm not a C++ evangelist, if I could get away with doing everything in Python, then I would. But if I tried writing a print processor or something in Python I'd get disgusted in short order and and redo my classes in C++. Or...

I'd look to see if someone else had done it in C or C++. If I could find open-source code for a UNIX print processor that someone had originally written in C in 1970, believe me, I'd use it. Code like that has had thousands of eyes looking at it over the years, and if there were bugs they're probably long gone. Or...

I'd see if Windows or a piece of software I already had or could buy that would do half of the work for me. Often the case is that there existing APIs that do parts of the job but they come from different vendors, so I'd need to write code that will interface with the framework of each. Since I don't want my project with parts in Java and parts in C# I'll try to find interfaces/examples in a language that will be common to both APIs, and that will likely be one of the dinosaur languages you've cited above...

I don't think this shift to codeless will all happen overnight and it will be some years before the transition becomes clearer to everyone, but it will happen.

<{POST_SNAPBACK}>

Just wanted to make the opposition clearer, too. :whistle:

Yes yes yes, there it was. Youth must go, ah yes. But youth is only being in a way like it might be an animal. No, it is not just being an animal so much as being like one of these malenky toys you viddy being sold in the streets, like little chellovecks made out of tin and with a spring inside and then a winding handle on the outside and you wind it up grrr grrr grrr and off it itties, like walking, O my brothers. But it itties in a straight line and bangs straight into things bang bang and it cannot help what it is doing. Being young is like being like one of these malenky machines.

Link to comment
Share on other sites

...or performance, or resources or compatibility. Most of the development that's being done out there is being done by businesses, and they're conservative about change, largely for those reasons.

I'm not a C++ evangelist, if I could get away with doing everything in Python, then I would. But if I tried writing a print processor or something in Python I'd get disgusted in short order and and redo my classes in C++. Or...

I'd look to see if someone else had done it in C or C++. If I could find open-source code for a UNIX print processor that someone had originally written in C in 1970, believe me, I'd use it. Code like that has had thousands of eyes looking at it over the years, and if there were bugs they're probably long gone. Or...

I'd see if Windows or a piece of software I already had or could buy that would do half of the work for me. Often the case is that there existing APIs that do parts of the job but they come from different vendors, so I'd need to write code that will interface with the framework of each. Since I don't want my project with parts in Java and parts in C# I'll try to find interfaces/examples in a language that will be common to both APIs, and that will likely be one of the dinosaur languages you've cited above...

Just wanted to make the opposition clearer, too. :whistle:

<{POST_SNAPBACK}>

I also mentioned other programming languages that can compile to C or C++. List:

. Euphoria - http://www.rapideuphoria.com/ (can compile to C and easier than C )

. BCX - http://www.rjpcomputing.com/programming/bcx/ (Basic syntax, at near C speed)

. SpeedBasic - http://martinm.net/speedbasic.html (Basic to C++)

In the future it will really be all about the compiler. You can get C/C++ without having to program in C/C++.

There is NOT any thing stopping people from creating a codeless programming language that compiles to C or C++ OR can decompile C or C++ (that was compiled with a similar compiler). This future codeless decompiler does not necessarily have to do a perfect job either, as just decompiling a program back to C/C++ pseudo code will be a great help or simply being able to decompile the programs that it compiled into C/C++.

This concept is already happening with .NET, as you can compile VB.NET and C# to CIL and decompile it back to get the source code. Limnor can be modified to go down this path as both compiler and decompiler for C# and VB.NET (the will and demand to do it just has to be there).

Of course .NET has Micro$oft's twisted slant involved in everything. However, open source programming languages do not have same issues, but they do have the problem of people being close-minded, short-sighted, or "the last defenders of yesterday's technology/techniques".

At some point, somebody is going to "get it". Instead of thinking of different ways to code something, so they will not have to deal with C or C++, somebody is going to make a compiler that compiles and decompiles C/C++. It is really silly, at this point, for everybody to create DIFFERENT ways of doing the same thing that is ONLY slightly less difficult than using, learning, or dealing with C, C++, Visual Basic, or Java. There is only so many way to do things in programming and it does not make sense for different programming to re-invent the wheel over and over again by coming up with like code to do the same thing. Its about time for somebody to develop something that is a radical CHANGE. Once an efficent way to do something is figured out and people will do it often, than it makes more sense to simplify the process and make it as easy as possible (this is something Limnor and Imitate do).

Somebody is going to create a programming language which is very easy to use (HLA/High Level Assembly may make it easy to create that compiler and language) and makes use of C or C++. Euphoria started to walk in that direction too, http://www.rapideuphoria.com/c.htm, but RDS has limited its development and Euphoria came out long before people were think seriously about CODELESS (like Limnor (can use VB.NET and C#) and Imitate (for Java)). I really don't think that C/C++ is the programming language of the future. Eventually, people will find a way to "deal with having to use it" by using a "smarter" compiler, which allows them to use very easy languages.

Edited by autoitNOW
An ADVOCATE for AutoIT
Link to comment
Share on other sites

However, open source programming languages do not have same issues, but they do have the problem of people being close-minded, short-sighted, or "the last defenders of yesterday's technology/techniques".

That's not the problem at all. The problem is the "me-too" phenomenon. Everybody wants their own piece of the pie to have their favorite flavor. I know how to use something like 5 scripting languages which is just ridiculous if you sit down and think about it. Only one of them is radically different from the rest... and I hate it. Even if a "perfect" language were designed, accessible and marketed correctly, somebody else would come along and tweak here and nudge there to get a "me too" version out there that introduces yet another dialect.

At some point, somebody is going to "get it".

"Somebody" doesn't matter, what matters is "everybody".

Instead of thinking of different ways to code something, so they will not have to deal with C or C++,

So you want to see the thought go out of programming? I have news for you, if people don't have to think to write programs, they will write shitty programs. Thinking of different ways and weighing the multitude of factors involved produces better code than you would get otherwise.

somebody is going to make a compiler that compiles and decompiles C/C++.

That sounds lovely. Let me put in a hundred hours into my project and let some pimply face college bloke lift my source for his "final" thanks to some two way language? No thanks. Its bad enough that disassemblers are as useful as they are.

There is only so many way to do things in programming and it does not make sense for different programming to re-invent the wheel over and over again by coming up with like code to do the same thing.

Comments like this make me wonder how good you really are at this stuff. The number of ways to do something increases exponentially as the difficult of the task increases. Sometimes re-inventing the wheel is necessary because the wheel you currently have is a 15" rim trying to fit in a 13" hole. You can probably use it but it probably won't be right. Anybody with any experience knows this. The art of writing truly generic things that are totally reusable is just that, an art. Most things end up too generic or too specialized to be of any use outside the application domain they were written for.

Its about time for somebody to develop something that is a radical CHANGE.

It'll be a decade before a radical change can get into the marketplace. By then it'll be old hat and people like you will be bitching for new things.

I really don't think that C/C++ is the programming language of the future.

This is absurd. C isn't dead yet and C++ has been standardized for 7 years already. C was originally standardized in 1989 (Or somewhere around there) and revised again in 1999. People are only just now starting to adopt C99 changes as being acceptable because 6 years later the tools are just now catching up and the old stuff is being phased out to where its actually viable to use the new features without breaking things. Neither C or C++ compilers are actually 100% standards compliant yet, either. It takes a long time to get even small changes to trickle through the community due to logistical reasons more than any other factor.

I also have a newsflash for you: Your OS is written in C. Unless you can convince Apple, Microsoft and about a billion flavors of Unix plus any other home brew developers out there to re-write their operating systems in some new-fangled language, C and C++ are not going anywhere. You'd be hard-pressed to get them to switch from C to C++, in fact. Every translation layer you add to a base language just makes it that much bigger and slower.

All your talk of languages converting from their form to C/C++ is just dumb. That might be fun for a Sunday afternoon hobbyist but you aren't going to sell the serious programmer on it. I'm personally not going to let some inept translator attempt to convert my code to C\C++. I'm going to do it myself to see that it gets done right (or wrong) and I'm going to control how its done. There are novel and even practical uses for such tools, but in the real programming world, they aren't going to fly.

You can take this however you wish, but I dislike how you're always bringing up these big long posts that are all fluff and no substance. Ever since you've started posting on this forum I've felt that way. My impression from you is that you read all the presentation material and thats it. You're a car sales-person's dream if that is the case and I also have an island to sell you in the desert. I don't see where you've got any experience with any of these languages or where you've been a part of the programming community to actually understand how things work.

Your ideas are grandiose dreams like every startup dialect developer has. These ideas aren't going to sell because we're a bunch of elite closed-minded arrogant pricks; they're logistical impossibilities. I've already given you the OS example. Virtually every piece of software you are using write now was written in C\C++. Some of these applications will probably come and go over the next decade. Some won't. Are you proposing that if a new uber-language came out tomorrow that they should drop the existing code base and re-write in this new language? Ridiculous.

This post isn't a personal attack against you. I will not sit idly by, though, and watch you attempt to justify this "new age" that doesn't exist and try to deprecate languages that are likely to be around and in use long after their creators are dead, probably even after you or I are dead. I'm not going to pretend I can portent the future on the subject but it is going to take something fantastically revolutionary and a big ass bucket full of money to change the future.

Link to comment
Share on other sites

That's not the problem at all.  The problem is the "me-too" phenomenon.  Everybody wants their own piece of the pie to have their favorite flavor.  I know how to use something like 5 scripting languages which is just ridiculous if you sit down and think about it.  Only one of them is radically different from the rest... and I hate it.  Even if a "perfect" language were designed, accessible and marketed correctly, somebody else would come along and tweak here and nudge there to get a "me too" version out there that introduces yet another dialect.

So you want to see the thought go out of programming?  I have news for you, if people don't have to think to write programs, they will write shitty programs.  Thinking of different ways and weighing the multitude of factors involved produces better code than you would get otherwise.

That sounds lovely.  Let me put in a hundred hours into my project and let some pimply face college bloke lift my source for his "final" thanks to some two way language?  No thanks.  Its bad enough that disassemblers are as useful as they are.

It'll be a decade before a radical change can get into the marketplace.  By then it'll be old hat and people like you will be bitching for new things.

This is absurd.  C isn't dead yet and C++ has been standardized for 7 years already.  C was originally standardized in 1989 (Or somewhere around there) and revised again in 1999.  People are only just now starting to adopt C99 changes as being acceptable because 6 years later the tools are just now catching up and the old stuff is being phased out to where its actually viable to use the new features without breaking things.  Neither C or C++ compilers are actually 100% standards compliant yet, either.  It takes a long time to get even small changes to trickle through the community due to logistical reasons more than any other factor.

I also have a newsflash for you: Your OS is written in C.  Unless you can convince Apple, Microsoft and about a billion flavors of Unix plus any other home brew developers out there to re-write their operating systems in some new-fangled language, C and C++ are not going anywhere.  You'd be hard-pressed to get them to switch from C to C++, in fact.  Every translation layer you add to a base language just makes it that much bigger and slower. 

All your talk of languages converting from their form to C/C++ is just dumb.  That might be fun for a Sunday afternoon hobbyist but you aren't going to sell the serious programmer on it.  I'm personally not going to let some inept translator attempt to convert my code to C\C++.  I'm going to do it myself to see that it gets done right (or wrong) and I'm going to control how its done.  There are novel and even practical uses for such tools, but in the real programming world, they aren't going to fly.

You can take this however you wish, but I dislike how you're always bringing up these big long posts that are all fluff and no substance.  Ever since you've started posting on this forum I've felt that way.  My impression from you is that you read all the presentation material and thats it.  You're a car sales-person's dream if that is the case and I also have an island to sell you in the desert.  I don't see where you've got any experience with any of these languages or where you've been a part of the programming community to actually understand how things work. 

Your ideas are grandiose dreams like every startup dialect developer has.  These ideas aren't going to sell because we're a bunch of elite closed-minded arrogant pricks; they're logistical impossibilities.  I've already given you the OS example.  Virtually every piece of software you are using write now was written in C\C++.  Some of these applications will probably come and go over the next decade.  Some won't.  Are you proposing that if a new uber-language came out tomorrow that they should drop the existing code base and re-write in this new language?  Ridiculous.

This post isn't a personal attack against you.  I will not sit idly by, though, and watch you attempt to justify this "new age" that doesn't exist and try to deprecate languages that are likely to be around and in use long after their creators are dead, probably even after you or I are dead.  I'm not going to pretend I can portent the future on the subject but it is going to take something fantastically revolutionary and a big ass bucket full of money to change the future.

<{POST_SNAPBACK}>

Valik you do make some valid points (and in your roughhouse style) and yes C/C++ was/is used to write OSes like Windows, etc...

But, C/C++ is not the end all, because you can write a compiler to spit out C/C++ code or have a C/C++ compiler translate your programming language to C/C++. This is being done NOW, by various freeware programming languages. The ranks of BCX, Euphoria, SpeedBasic, etc.. are only going to increase.

Disassemblers and decompiling are simply going to get better, not worse. Projects/programs like REC ( http://www.backerstreet.com/rec/rec.htm ), Boomerang ( http://boomerang.sourceforge.net/ ), IDA Pro, etc... are only going to get better to the point that these types of programs "totally hit their mark" in decompiling unprotected .exe to source code.

At some point, an easy programming language will use a C/C++ compiler/decompiler. I do not think this is too far off into the future. Also, the "me too" factor will only add to the number of projects and programming languages that will be able to do this.

At the point that some version of basic or new language is easier and faster to code in than C/C++ and can compile/decompile to it than many people ARE going to defect. Yes, C/C++ will still be around, but its popularity will severely decrease. That "new" language, will be "all the rage".

If the programming language is easier to learn, easier to understand, faster to code in, etc... this is not a "bad" thing, but a good thing. Its like the difference between walking and using a bike or car. Yeah, you could walk around and code slowly, but why do that when you can get complicated programs finished easier and faster?

Also, easier and faster does not have to mean thoughtLESS or dumb downed. It can mean that you can create bigger and more complex programs if that is what you want to do, without getting involved into every line and syntax unless you need to. Smart people, will figure out how to use the new technology in "smart ways", just like smart people will figure out what to with gun powder instead of running around with swords and spears.

Limnor and Imitate are here NOW. There is also a number of other codeless programs out there (but I don't like them). Does the user care if you spent 6 weeks working with Visual Studio to make your .net project or used Limnor to spit it out in 6 days? Why not use Imitate to spit out Java code even faster? Those codeless programs make it easier and faster to develop programs NOW. The number of such programs will only increase in the future.

High Level Assembly is here NOW and version 2.0 is getting closer to its release date. That means an Assembly language with the power to also use syntax of "higher level languages" as well. HLA can and will also be used to make compilers and create new "higher level" languages.

There is nothing wrong with programming languages focusing on Rapid Application Development, easy of use, decreased learning time, etc... In fact, what is the point of AutoIt? Why not just code in Assembly? If somebody takes 6 months to program something in Assembly that he could of used a higher level language to create in 6 weeks or 6 days, does that make him a genius or somebody just torturing himself?

Also, Valik I do agree with your point that many highly skilled C/C++ programmers will not be interested in allowing some "odd ball" programming language "translate" their programs into C/C++. Such programmers will want to see and inspect every single line of code for themselves, just like there are also people that say using Assembly, POP, MOV, etc... is all "that" (and even C/C++ programmers call these types crazy). But if it is not machine code or assembly code, than is not what you are using just a higher language preference??? There are going to be a lot of people that are getting into programming that want nothing to with the "slow and old" way. Also, there will also be highly skilled programmers that will focus on "tweaking" the new programming language compiler to spit out better code. It will come down to "different strokes for different folks", but that is fine. Choice can be good and so can technical advancements.

Edited by autoitNOW
An ADVOCATE for AutoIT
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...