If you could learn one programming language what would it be?

2»

Comments

  • TheShadowTheShadow Member Posts: 1,057 ■■■■■■□□□□
    Real programmers learned 8080/8086 assembly and used MASM or TASM to assemble it on an IBM AT or an Apple II with a CPM card for 8080 only. They learned C by reading K&R 1 and nothing else, then learned C++ using Cfront . All other languages are simply details except COBOL and maybe APL which one normally refuses to admit to. Remembering the time when most users knew how to use debug to write code.

    Grabs coat and hat and heads for the door with evil grin :)
    Who knows what evil lurks in the heart of technology?... The Shadow DO
  • AkaricloudAkaricloud Member Posts: 938
    Asif Dasl wrote: »
    I have to say, if I ever meet someone who does Assembly I'll have to shake their hand and congratulate them and wonder how they stop themselves going postal... lovely example code here.
    I took a few assembly classes that were awesome actually! Unfortunately I haven't used it since and barely remember any of it.
  • DevilWAHDevilWAH Member Posts: 2,997 ■■■■■■■■□□
    If you considered that most OS's (linux and Windows) most of the applications we use and almost all the games we play have at least partly if not completely been written using c and c++. That should tell you that as a language the c family has a lot going for it.

    things like SQL are very narrow in there application, as are are jave and vb script or any Scripting/interpreted languages. While scripting teaches good logic I like others would not call them real languages. And if you are looking for a single language to cover all of the programming concepts then you can count them out.

    Assembly level languages are a bit the other way, and quite specific in there application, but will really teach you how a computer process data at the hardware level.

    but the best language to learn is the one is the one you have a use for, as the way you will learn is to practice and try. Which is why a lot of people enter in through the scripting languages, quick to pick up and quick to become useful in you day to day job. They then can lead on to more "complete" languages later on.
    • If you can't explain it simply, you don't understand it well enough. Albert Einstein
    • An arrow can only be shot by pulling it backward. So when life is dragging you back with difficulties. It means that its going to launch you into something great. So just focus and keep aiming.
  • petedudepetedude Member Posts: 1,510
    paul78 wrote: »
    The first language I ever learned was Applesoft Basic, followed by Pascal, and then Fortran.

    You go back as far as I do, probably.

    Mine was something like AppleSoft BASIC, AppleWriter WPL, Condor DBMS, MS BASIC (CP/M), Pascal then C as a kid.
    Even if you're on the right track, you'll get run over if you just sit there.
    --Will Rogers
  • ptilsenptilsen Member Posts: 2,835 ■■■■■■■■■■
    erpadmin wrote: »
    In terms of programming languages where you compile something into an executable (which I believe this thread is about) then no, SQL does not qualify. Yes it is a "language," smarty-pants [smile], but if all you knew was SQL, then you'd have a hard time printing "Hello World" if you were not familiar with any other OOL languages.
    I was agreeing with you. It's a query language, not a programming language, by any definition. SQL won't provide a foundation for programming or even administrative scripting.
    Working B.S., Computer Science
    Complete: 55/120 credits SPAN 201, LIT 100, ETHS 200, AP Lang, MATH 120, WRIT 231, ICS 140, MATH 215, ECON 202, ECON 201, ICS 141, MATH 210, LING 111, ICS 240
    In progress: CLEP US GOV,
    Next up: MATH 211, ECON 352, ICS 340
  • RobertKaucherRobertKaucher Member Posts: 4,299 ■■■■■■■■■■
    paul78 wrote: »
    Whew... glad I'm not the only one.

    I consider Java, c#, and VB.net scripting languages too icon_lol.gif
    They are technically intepreted languages. I also think that any language with a garbage collector which is pretty much most intepreted languages is a scripting language.
    This is inaccurate. C# is compiled into Intermediate Language (which makes them cross platform) and JIT'ed into machine specific code when they are run. C# is not interpreted, regardless of what WikiPedia might say. The .NET specification is very clear about how this occurs (I cannot comment on Java as I have only a general knowledge of it). If you look at this StackOverflow question they discuss this very topic. I believe the same is true for all the .NET languages like VB.NET, Visual C++, and F#. I'm not certain of how .NET languages like PowerShell work when they operate with .NET assemblies. Regardless, in this case you are using the word "interpreted" where you should be using "managed". And to say that managed languages are nothing more than scripting languages is a gross oversimplification.

    Either way this is simply a matter of implementation and there have been interpreted versions of C. Any language can be run on the interpreted model. This is like saying that only machines with four wheels or more qualify as motor vehicles.
  • RobertKaucherRobertKaucher Member Posts: 4,299 ■■■■■■■■■■
    erpadmin wrote: »
    SQL really isn't a programming language. When you look at what SQL is, you'll find that it's really not as a complex as Java or any other Object-Oriented Language.

    SQL is terribly easy, believe it or not.
    I'll leave the semantics of what people believe a programming vs. a scripting language is and I'll just say that SQL, especially when you consider a variant like T-SQL or Postgresql, can be exceptionally complex and the deeper you go into relational algebra and relational calculus the more you understand that. If all you are really working with is basic CRUD operations and a few JOINS it's not that bad. But the concepts of the relational model that SQL implements are not very intuitive and even seasoned developers trip up on them all the time because they can't understand how to think in a set-based, relational model.
  • paul78paul78 Member Posts: 3,016 ■■■■■■■■■■
    TheShadow wrote: »
    Real programmers learned 8080/8086 assembly and used MASM or TASM to assemble it on an IBM AT or an Apple II with a CPM card for 8080 only. They learned C by reading K&R 1 and nothing else, then learned C++ using Cfront . All other languages are simply details except COBOL and maybe APL which one normally refuses to admit to. Remembering the time when most users knew how to use debug to write code.

    Grabs coat and hat and heads for the door with evil grin :)
    LOL -I thought real programmers hand-assemble 6502 code.
    icon_lol.gif Hides under desk to avoid the projectiles.
  • CodeBloxCodeBlox Member Posts: 1,363 ■■■■□□□□□□
    paul78 wrote: »
    LOL -I thought real programmers hand-assemble 6502 code.
    icon_lol.gif Hides under desk to avoid the projectiles.

    As a project last summer, I was writing a 6502 emulator in C :D Got the core down and implemented a few instructions. I had started the project but never got to finish it. I've been thinking about picking it back up again as it would be so cool to finish.
    Currently reading: Network Warrior, Unix Network Programming by Richard Stevens
  • paul78paul78 Member Posts: 3,016 ■■■■■■■■■■
    This is inaccurate. C# is compiled into Intermediate Language (which makes them cross platform) and JIT'ed into machine specific code when they are run. C# is not interpreted, regardless of what WikiPedia might say. The .NET specification is very clear about how this occurs (I cannot comment on Java as I have only a general knowledge of it).
    Interesting. I did not realize there was a JIT compiler involved. That would certainly explain the comments that I've heard from colleagues regarding the performance characteristics of .Net. I assumed incorrectly that it was purely interpreted based on the tidbits that I read about .Net reflection. Java can utilize something similar.
    I believe the same is true for all the .NET languages like VB.NET, Visual C++, and F#.
    I am curious if you have seen any adoption of f# - I found it fascinating that Microsoft was developing a functional language. Is it really a functional language like John Backus envisioned. I often wonder if functional languages will really find widespread adoption other than as a niche.
    Regardless, in this case you are using the word "interpreted" where you should be using "managed". And to say that managed languages are nothing more than scripting languages is a gross oversimplification.
    Very true and I don’t dispute that. Is “managed” just a marketing term for “interpreted” – just kidding – can’t help myself icon_twisted.gif.

    I do understand the difference. My comment was partly to elicit insightful dialogue in a manner to assist the OP in understanding language differences and their value proposition.

    It’s my belief that programming languages are just different tools in a toolbelt. There is no one magic programming language and when developing a new application, the choice of that tool will determine the ability to support and scale that application over its lifetime.

    Developing a Windows desktop application in unmanaged C or Assembly is probably not a good idea. Similarly, it’s a bad idea to write an operating system kernel in a high-level language.

    One pet-peeve that I do have is when applications are developed using high-level languages like Java or a .Net language and then the developer tightly couples code into the operating system.
    Either way this is simply a matter of implementation and there have been interpreted versions of C. Any language can be run on the interpreted model.
    Right – I have seen interpreted versions of C and it still eludes me on its utility other than an academic novelty, learning tool, or embedded application macro language.
  • RobertKaucherRobertKaucher Member Posts: 4,299 ■■■■■■■■■■
    paul78 wrote: »
    Interesting. I did not realize there was a JIT compiler involved. That would certainly explain the comments that I've heard from colleagues regarding the performance characteristics of .Net. I assumed incorrectly that it was purely interpreted based on the tidbits that I read about .Net reflection. Java can utilize something similar.
    I thought that was the case with Java but I've not touched it since about 2001 or so. I'll look for some info on .Net architecture for you. I think I recall hearing a good treatment of it on a pod cast. Might have been .NET Rocks.
    paul78 wrote: »
    I am curious if you have seen any adoption of f# - I found it fascinating that Microsoft was developing a functional language. Is it really a functional language like John Backus envisioned. I often wonder if functional languages will really find widespread adoption other than as a niche.
    I can't really say... .NET Rocks did an episode on it recently. I love the functional components that are being introduced into C#and use them a lot. Wrox has a good treatment of it but I've only read a few chapters. Amazon.com: Functional Programming in C#: Classic Programming Techniques for Modern Projects (Wrox Programmer to Programmer) eBook: Oliver Sturm: Kindle Store
    paul78 wrote: »
    ...
    Developing a Windows desktop application in unmanaged C or Assembly is probably not a good idea. Similarly, it’s a bad idea to write an operating system kernel in a high-level language.

    One pet-peeve that I do have is when applications are developed using high-level languages like Java or a .Net language and then the developer tightly couples code into the operating system.

    Right – I have seen interpreted versions of C and it still eludes me on its utility other than an academic novelty, learning tool, or embedded application macro language.
    Sooooo... Have you heard of Singularity? Can't get more academic than that! Oh yes, the Kernel is written in a variant of C#.
  • RobertKaucherRobertKaucher Member Posts: 4,299 ■■■■■■■■■■
    Now to actually answer the question... The first language I ever learned was Perl. I have not seriously used Perl in nearly 15 years... There is a special place in my heart for it and I'd love to sit down and learn it again. But it is completely impractical to me.

    If I could branch out a bit I would like to get into Java and do some Android development. Right now, though, my bread and butter is SQL Server+SharePoint+Windows Administration so I have very little time. Put I really think professionally I do need to branch out a little.
  • vColevCole Member Posts: 1,573 ■■■■■■■□□□
    N2IT wrote: »
    I edited this

    ABAP SAP development


    I unfortunately have to learn this. I'd like to learn Perl and PHP.
  • N2ITN2IT Inactive Imported Users Posts: 7,483 ■■■■■■■■■■
    @vCole

    Why are you developing in ABAP? Are you building out modules in an SAP ERP? If so you can make over 200 an hour, if not more. Aren't you network admin, that is a crazy turn of events.

    I have done some development in ABAP in a sandbox environment and it was actually enjoyable. Of course this was in my free time at work. Never was compensated for it, never had a chance the company was purchased by a company running JDE.

    That killed all those dreams.
  • CodeBloxCodeBlox Member Posts: 1,363 ■■■■□□□□□□
    vCole wrote: »
    $beer | %{$_.Drink()}
    Just out of curiosity, is that to be read "Beer or the remainder of the last drink"?
    Currently reading: Network Warrior, Unix Network Programming by Richard Stevens
  • erpadminerpadmin Member Posts: 4,165 ■■■■■■■■■■
    I'll leave the semantics of what people believe a programming vs. a scripting language is and I'll just say that SQL, especially when you consider a variant like T-SQL or Postgresql, can be exceptionally complex and the deeper you go into relational algebra and relational calculus the more you understand that. If all you are really working with is basic CRUD operations and a few JOINS it's not that bad. But the concepts of the relational model that SQL implements are not very intuitive and even seasoned developers trip up on them all the time because they can't understand how to think in a set-based, relational model.

    I think it is awesome that you have really gotten that deep with SQL.

    Perhaps one really should consider taking up calculus so that one can take one of those CS courses that deal with relational database theory (be it at an undergraduate or graduate level, though calc should undoubtedly be taken at an undergrad level.)

    Thankfully, for most day-to-day operations a DBA has to deal with, it really doesn't have to be that deep. But I will qualify that with saying it would not be a bad idea for it to get that deep. CRUD has always been good enough for a lot of DBAs (and I dare say, most developers I've worked with.)
  • paul78paul78 Member Posts: 3,016 ■■■■■■■■■■
    Sooooo... Have you heard of Singularity? Can't get more academic than that! Oh yes, the Kernel is written in a variant of C#.
    Oh goodness - I hadn't seen that before. I've seen other OSs like JavaOS where the kernel was basically a VM and the higher OS layers were written in Java. With the ability to build on previous gains, and the performance of hardware, I suppose this makes sense to be able to do. It's kinda interesting than in the past where it was necessary to squeeze as much performance as possible because hardware performance isn't what it used to be.
  • RobertKaucherRobertKaucher Member Posts: 4,299 ■■■■■■■■■■
    erpadmin wrote: »
    I think it is awesome that you have really gotten that deep with SQL.

    Perhaps one really should consider taking up calculus so that one can take one of those CS courses that deal with relational database theory (be it at an undergraduate or graduate level, though calc should undoubtedly be taken at an undergrad level.)

    Thankfully, for most day-to-day operations a DBA has to deal with, it really doesn't have to be that deep. But I will qualify that with saying it would not be a bad idea for it to get that deep. CRUD has always been good enough for a lot of DBAs (and I dare say, most developers I've worked with.)
    I totally agree with your final sentence. But I'll give you a list of resources I think you should study if you want to go really deep:
    Amazon.com: Joe Celko's Trees and Hierarchies in SQL for Smarties, Second Edition (The Morgan Kaufmann Series in Data Management Systems) (978012387733icon_cool.gif: Joe Celko: Books
    Amazon.com: Joe Celko's Thinking in Sets: Auxiliary, Temporal, and Virtual Tables in SQL (The Morgan Kaufmann Series in Data Management Systems) (9780123741370): Joe Celko: Books
    Amazon.com: SQL Antipatterns: Avoiding the Pitfalls of Database Programming (Pragmatic Programmers) (9781934356555): Bill Karwin: Books
    Amazon.com: SQL and Relational Theory: How to Write Accurate SQL Code (9780596523060): C.J.: Books

    The final link is also a Master Class on Safari. Very deep treatment of the relational model.
Sign In or Register to comment.