Slashdot Mirror


Ask Slashdot: How Often Do You Switch Programming Languages?

An anonymous Slashdot reader writes: I always see a lot of different opinions about programming languages, but how much choice do you really get to have over which language to use? If you want to develop for Android, then you're probably using Java...and if you're developing for iOS, then you've probably been using Swift or Objective-C. Even when looking for a job, all your most recent job experience is usually tied up in whatever language your current employer insisted on using. (Unless people are routinely getting hired to work on projects in an entirely different language than the one that they're using now...)

Maybe the question I really want to ask is how often do you really get to choose your programming languages... Does it happen when you're swayed by the available development environment or intrigued by the community's stellar reputation, or that buzz of excitement that keeps building up around one particular language? Or are programming languages just something that you eventually just fall into by default?

Leave your answers in the comments. How often do you switch programming languages?

40 of 331 comments (clear)

  1. When you pry my keyboard from my cold dead fingers by macker · · Score: 5, Informative

    But then, I only fry firmware-burgers, so 'C' and assembler are it...unless you wanna count all the assembler flavors, then it would be 2 or 3 times a day...

    --
    (T)he (O)ld (M)an
  2. How many pieces of hardware are in the system? by JoeMerchant · · Score: 5, Informative

    Small embedded ARM processors: C

    Mid-sized embedded Linux: C++

    Bloaty multi-core GUI with printer drivers, etc. running on Windows: C#

    Cloudy web servery type stuff: Javascript

    And, all of these can be found in a single shipping product. Go Team Silo Go! Hope it sticks when you toss it over the wall!

    1. Re:How many pieces of hardware are in the system? by Dutch+Gun · · Score: 4, Interesting

      For me, it's not as much the hardware as the requirements of the software. I'm a game developer, so the engine and game are in C++, of course, no matter the platform. Our tools generally run on Windows, and productivity is more important than performance, so some of us use C#, while some other studios have used Java, from what I understand. If we need an extension language for our tools, maybe something like IronPython. If we're porting to Mac, toss in a bit of Objective-C. The web programmers use a lot of JavaScript, of course. Toss in some Lua as an embedded scripting language. There are probably a couple of minor cases I'm forgetting, but that's the bulk of it for my work.

      --
      Irony: Agile development has too much intertia to be abandoned now.
  3. With every project. by Marc_Hawke · · Score: 3, Interesting

    Or at least it's the project that determines the language.

    I use half a dozen different languages every day. You can double that if you look over the past year. There are a lot of factors that go into choosing a programming language and "what's new and cool" rarely is one of them.

    The two biggest factors are 'what is the execution environment?' and 'what are the interface requirements?' Basically, 'who is going to run it' and 'what does it have to talk to?' (and they are closely related)

    Next comes 'what are the related/currently existing projects already written in?' It's rare that you want to rebuild the whole thing. (Although sometimes that's exactly what you want to do.)

    After that, I'll look at the available libraries and tools, but for the most part everything worth using is adequate in those areas.

    Finally, if it makes it that far, I'll pick something I'm familiar with, just the make the whole project faster and less work.

    Overall, it's been quite a few years since the 'language' of the project was something I even worried about. "When in Rome, do as the Romans do."

    --
    --Welcome to the Realm of the Hawke--
  4. Stay the course by bidule · · Score: 3, Insightful

    There's no point in changing language often. You stick to one and master it. I have a coworker who handles most legacy apps, it doubles the time taken to make fixes because he's in the wrong context.

    I'd say 5 years is a good run for a language, you can return to it in a day later on. Sure you can do a quick hack in a non-mastered language, but your style aint stable and 3 months down the line it'll be spaghetti.

    --
    ID: the nose did not occur naturally, how would we wear glasses otherwise? (apologies to Voltaire)
    1. Re:Stay the course by Drethon · · Score: 2

      Personally I haven't been given the option to master a language by my employers. I tend to focus on the best design for a program, regardless of the language I'm working in. Most programs don't need to be perfectly optimized and internet searching provides advanced techniques without taking too much time.

      I started out learning Java in college but only learned basic object oriented before moving to a mixed C/C++ embedded environment. After five years in this environment, my company went through a massive turnover in 2009 and I took a development job programming Ada. This lasted for a year or so and I shifted back to a C environment. During this time I dabbled in other languages that were required for the environment, DOORS DXL for scripting in Telelogic DOORS requirement environment, bash and DOS scripting, occasional work with perl, LabWindows and a few others. My most recent job was developing simulation programs with C# GUIs, C++ back end and visual basic scripting. During this time I taught a class in Java, which I had not used in five years but could pick right back up again thanks to a high level experience with programming theory, rather than specific applications.

      Don't get me wrong, mastery of a specific language has its place. Language masters can produce extremely efficient programs, which is something that seems to be often overlooked these days. On the other hand I've found understanding programming without being language specific helps me design programs that are more flexible and easier to read for someone familiar with any language.

      YMMV.

  5. Every other script... by Maow · · Score: 3, Funny

    ... it keeps things interesting.

    Besides, I hate Bob in QA and it gives him conniptions trying to read it.

  6. As a system administrator, not a developer... by Celti · · Score: 2

    ...I basically have three areas I write in.

    There are the short and sweet (I mean, we all intend them to be short and sweet, no matter how unwieldy they get) system administration scripts. Those are basically always bash, although after I write them I always go "Damn, I keep meaning to try execline and forgetting it exists!"

    There's frontend Web dev. Javascript rules the day here, until WebAssembly finally gets... assembled.

    Then there's "everything else", which for the first ten years I wrote code meant Perl. I also flirted with Ruby and Haskell, didn't like Python much, despise PHP and used it anyway when debugging the seemingly-endless string of PHP webapps out there, and somehow convinced myself C/C++/C# were too hard for me to learn.

    Then I discovered Rust, and now it's basically my favourite language for anything. Rust has actually made me seriously consider moving from administration and support to development (if anyone local was hiring entry-level Rust developers, anyway!). Will I consider other languages in the future? Probably. But I'm going to consider Rust first.

  7. Comment removed by account_deleted · · Score: 5, Interesting

    Comment removed based on user account deletion

  8. Man, I'm glad I got out of IT by DNS-and-BIND · · Score: 5, Informative

    One thing I do not miss (besides being woken up by the pager) is having my knowledge obsoleted and being forced to learn new things. Oh, but you're supposed to never stop learning, stay young, blah blah blah. Bullshit, that's a bunch of pro-corporate propaganda. Now, I learn something...it sticks. 5 years later, I still know the thing. In fact, after 5 years I'm probably quite good at it. I will stay quite good at it until it changes (slowly or not at all) or I die. Sure, new laws and regulations come along every so often and they must be mastered, but it is nothing like IT. I like this way much better than becoming an expert and then having to start all over at square 1.

    --
    Shutting down free speech with violence isn't fighting fascism. It IS fascism!
    1. Re:Man, I'm glad I got out of IT by iCEBaLM · · Score: 2

      Oh man, that's good to know that my knowledge of 10Base5 and 10Base2 network cabling is still useful, and my knowledge of netinfo, netware, appletalk, amigados, PC IRQ conflict troubleshooting, pascal, and of course, the ever popular frame relay. So glad I studied frame relay. because you just told me all my knowledge is never obsolete! I think I'm gonna go out and setup a windows 3.11 workgroup right now!

  9. Is it webscale? by Gumbercules!! · · Score: 2

    I use MongoDB because it's webscale. I also pipe data to dev/null because it's fast as hell.

    But seriously, for web stuff, php/javascript and for Windows server work, believe it or not, VB.NET, because that's what the code I've got to work with was written in.

  10. How many times do you switch back? by EmperorOfCanada · · Score: 4, Interesting

    I have switched computer languages many times. Some times for good, some times just for a project, but often I find a "better" language, only to find that it has many dead ends or other problems. My present primary language is actually two: Python and C++. With these two there isn't much I can't do. Where one is weak the other is strong.

    That said, there are some situations where another language is called for. Javascript is pretty much the defacto browser language. Thus I would never try Python or C++ in the browser as that would just be horrible. But I don't really see Javascript as a great a language outside the browser as some people claim. Then there are scripting languages. I use Lua where I give users the ability to extend my programs through scripts because Lua is wonderfully tied into C++ through some awesome language extensions, they are tight and small. So would I say that I switch programming language when I jump to Lua or Javascript?

    That all said, some languages are pretty much dead to me. Java is solidly in the trash, .net is solidly in the trash, perl is solidly in my past, and very happily Objective-C is in the dumpster and I set it on fire.

    I think that an interesting question would be more, "What language(s) do you presently use, what languages are your last 5 years of code largely in, and what languages are presently on your list of languages you are interested in exploring?"

    1. Re:How many times do you switch back? by tomhath · · Score: 2

      Python can do anything Perl can do. With the added bonus that you can read the code the next day and understand what it's doing.

  11. Depends. by Yaztromo · · Score: 2

    I've been a developer on some pretty damn big projects. The kind of projects used by Fortune 500 companies -- everything from end-user facing applications all the down to low-level infrastructure projects.

    If there's one thing I've noticed about all of these large projects over the years, it's that there is rarely ever only one programming language in use. Web apps will use Javascript on the front end and one or more language son the back-end. Large scale C/C++ apps will have a variety of scripts surrounding them. Every project needs an installer, some form of scripting for the build processes, deployment, automated QA, and (frequently) database management. There may even be a mobile app attached to the project. I've had to switch between C/C++, Bash scripting, Java (with JNI), SQL, and REXX, all in the same project.

    The point being, if you work on a large enough project, and aren't a junior developer, you're probably switching between a bunch of different languages already. Those languages are probably fairly stable (i.e: you probably won't see too often where you change a massive project from Java to C#), although I've certainly introduced new languages and processes to big projects to make "dumb" processes smarter. The ability to do that, however, often comes when you get to a point in your career where you can specify and/or contribute to significant architectural changes.

    I've also been fortunate enough to work at a few places where you can spend 10% of your time working on personal interest projects. If you're fortunate enough to be in such an organization, this is a great time to try out new languages that interest you. If not, find (or start) a project in the interesting language of your choice, and work on it in your own time. If you make it Open Source, and put it on GitHub or the like, you can include it as experience on a resume.

    Yaz

  12. At will by MrKaos · · Score: 2

    I switch between languages several times a day, sometimes I use two at once, doesn't everybody who codes? I have a method for understanding the capabilities of a language by implementing some design patterns when I learn a new one, which is pretty fun to do. I have no shame, I am a geek!

    Sometimes the features of one language teach you something new that you can apply to other languages. Learning is addictive, it's why I love programming.

    Is it just me or does anyone else get the feeling that these odd questions are being asked by recruiters trying to figure out how technologists work?

    --
    My ism, it's full of beliefs.
  13. Re: When you pry my keyboard from my cold dead fin by Anonymous Coward · · Score: 5, Funny

    Grandpa, Mom says you need to get off the computer.

  14. I don't. C for life. by Nyder · · Score: 3, Interesting

    C does what I need it to do. Only thing I'd switch to is probably assembly, since that would make the code run faster.

    --
    Be seeing you...
  15. Don't be Dogmatic by Plus1Entropy · · Score: 4, Interesting

    You should almost never have the mentality of "I don't use such-and-such-a-language", whether it's because you don't like semicolons, hate whitespace requirements, or some other bullshit reason (come at me, I know you're out there :P). That doesn't mean you can't prefer one or the other, or even gripe about it to your co-workers; just don't let it get in your way.

    If you've done enough programming and know at least 1-2 languages fluently, you should be able to pick up another very quickly (less than a week). Often, at a particular company or on a particular project, you don't get a choice. If you do, the requirements of the project will force you to choose between 2 or 3. If you happen to be in a situation where you have absolute control and get the final say on what language to use, then you should choose the one that is best for the job.

    But when I say "best for the job", I don't necessarily mean in some theoretical, push-your-glasses-up-your-nose sense. I mean what will allow you to do the best you can to achieve the requirements of the task at hand. If the task at hand is to teach yourself something, choose a language you're less familiar with. If it's to meet the requirements of a client in a reasonable amount of time, choose a language you are more familiar with. If the application is computation heavy and speed is a requirement, choose a more efficient language. If you are not the sole developer, choose a language that your co-workers would be more comfortable with using.

    Often (read: always), more than one of these factors will be relevant. It's up to you, individually or as part of a team, to weigh them and determine the best choice. That is what it means to be an expert.

    Simply put, you should switch languages whenever you deem it necessary to do so. To know when it's necessary, you have to expose yourself to a lot of different languages.

    --
    Only crack the nuts that crack. You don't put the ones that don't crack in the sack.
  16. Re:Well... by Pseudonym · · Score: 5, Insightful

    Unless you have been programming for about 300 years, there is zero chance you have achieved fluency in more than 2 or 3 of these programming languages. Being able to print "Hello world," does not count as fluency, any more than being able to say, "Hello, my name is Robert," counts as fluency in a human language.

    Once you get past the first 6 or so, assuming you chose them carefully, the similarities are apparent. But if it helps, merely being able to write a nontrivial program in a given language doesn't mean that you can call yourself a "X programmer".

    Consider what it means to be a Java programmer. I know Java, the language, extremely well. Well enough to write a conforming Java 1.7 to bytecode compiler, I would think. Now here's what I don't know: JSF, Spring, Swing, Maven, Ant, Struts, Android SDK, Eclipse RCP, etc. It's knowing a decent amount of that stuff that which lets you call yourself a "Java programmer" in good conscience. I can write programs in Java, but I'm not a Java programmer.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  17. Re:Well... by Pseudonym · · Score: 3, Informative

    Disconnect your computer from the internet, and write a fully conforming Ada 2012 compiler in Common Lisp.

    Interestingly, Ada isn't one of them. Nor is Python, interestingly.

    If you're curious how I got to 60, there are a lot of languages in there which are distinct languages with distinct specs, but are essentially dialects.

    Consider the Turner family of languages, for example. I've used KRC, Miranda, Orwell, Miracula, and Haskell. All of them are distinct languages with their own specs. I can remember writing a Prolog interpreter in at least three of them. I can still explain to you some of the key differences between them. if you know two of them you know them all, and besides, one of them is still around.

    Other examples of distinct-but-close-enough languages which I have used in a nontrivial manner are Eiffel and Sather, SML and O'Caml (never used Alice), Smalltalk and Newspeak, Object Pascal and Delphi, Agda and Coq (never used Epigram), PostScript and Forth, Java and Modula-3.

    And then there's logic languages. I've used (again, seriously used) Prolog, Datalog, Mercury, Oz, Gödel, and KL1. All of them are distinct languages with crucial differences, but so closely related that once you know two of them well (say, one dynamically typed and one statically typed variant), you can get quite productive in most of them within an afternoon.

    Oh, and four different assembly languages.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  18. Re:More often than... by tlhIngan · · Score: 2

    I bet I have used languages with the same frequency as this kind of question comes up on /. -- current favourite is alpasisp+++^21

    Seriously, it's all just syntax, convention, and architecture, so I don't bother to track. Off the top of my head, I'm up to 30+ "languages" in 30+ years. Throw in media (yes, starting with punch cards), then it gets worse.

    I think a more relevant question is how often does one advance their architecture, paradigms, and most importantly debugging skills. Anyone can write a program that compiles and does something. Building something that is understandable, useful, usable, and maintainable, now that's a discussion.

    Exactly. It's not about chasing languages - it's knowing the concepts behind the language. Knowing the concepts means a language is really syntax, idioms and keywords.

    And once you know that, you also realize that a big part is libraries. But once you know a library, like say the C library, you realize that when you need a function, there's usually going to be a library for that. Like if you need to date calculations, there are C libraries to do that, so you if you need to a date calculation in another language you know there's got to be an API for that.

    Here's the thing to understand - at the very lowest level, you have machine code. It's what the processor executes, it's all the processor knows. Anything you toss on top has to be translated to that - it doesn't matter if it's assembly, C, C++, Java, BrainF**k or any other programming language you can dream up (SQL, say). In the end, it all boils down to machine code.

    And even more abstractly, every processor derives its instruction set from an limited implementation of an abstract Turing machine. The Turing machine defines what a "computable" or what a computer can actually do (this applies to hardware like FPGAs too - FPGAs can do a lot, but they only can do computable things).

    Once you understand this, you can be one with the machine, and realize what a programming language actually is.

    Contrast this to regular human languages where language evolved due to history - the history of English is derived heavily from the history of the world - the barbarians of Great Britain, through the Roman Empire, etc. Which makes it easy if you're learning a shared history language (perhaps a Romantic language), but much more difficult when there's little shared history (say, Asian languages).

    The computer has one language and every abstraction on top of that is still limited by the base.

  19. Switch? by drolli · · Score: 5, Interesting

    I dont switch. I start to use programming languages when is see it fit and stop to use them when I see it fit. It is not a 'Everything in one language' thing. Depending on the project, languages switch positions.

    1987-1990: Basic
    1988-today: Assembler
    1989-1993: Pascal
    1990-today: C/C++
    1995-2010: perl
    1996-today: octave/matlab
    1999-2005: Autolisp
    2000-today: Java
    2002-today: Python
    1995-today: bash
    2007-2011: tcl/tk

  20. Re: Well... by prefec2 · · Score: 3, Informative

    60 looks a little bit too mich, but Ehen I look back, I learned several BASIC dialects, Z80 assembler, Turbo Pascal, 8086 ASM, Fortran, C, Modula-2, Scheme, Elisp, Prolog, Objective-C, PHP, Java, Xtend. That are 15 counting the Basiscs AS two languages. I also used XSLT, XSD, Corba which are a transformation language, a data model language and a component interface declaration language. I also know some stuff in HTML, CSS, SQL, EQL,bash, csh, make, ant and maven.
    So if I count all those DSLs as programming languages, I am close to 30. Maybe he can provide us with a list.

  21. Re:So far, I don't by TheRaven64 · · Score: 5, Interesting
    C++ has recently replaced a lot of scripting language usage for me. C++14 has most of what I want from a scripting language:
    • First-class closures (and the 'auto' type on parameters in lambdas in C++14 is really useful).
    • Mostly automatic memory management (shared_ptr / unique_ptr).
    • Regular expressions.
    • Fast I/O
    • A rich set of efficient built-in data structures (associative arrays, lists, vectors, sets)
    • Reasonable performance
    • Multithreading
    • The ability to package my scripts into a library for embedding in other applications later

    For small programs, compiling C++ at -O0 takes under a second and the result runs faster than any interpreted language.

    --
    I am TheRaven on Soylent News
  22. Re:Is this question from five years ago? by TheRaven64 · · Score: 4, Informative
    There are two things that make people hate Ruby:

    The first is the implementation of the language. You start with Smalltalk, take out the bits of Smalltalk that are difficult to compile, and then end up with an implementation of a language that is slower than something like Squeak / Pharo, which are simple bytecode interpreters. That doesn't fill anyone with confidence in the language. I can understand Ruby not being faster than a JIT-compiled Smalltalk, but there's no excuse for it not having been faster than a reasonable Smalltalk bytecode interpreter from day one.

    Then there's the community. The Ruby community spent a good decade taking 30-year-old ideas and claiming that Ruby had made them possible, that Ruby developers had invented them, and this is why Ruby is so awesome. Rails is a good example of this. ORMs have existed since the '80s. WebObjects was arguably[1] the first ever web app development framework and it included EOF, which did the same thing as Rails in Objective-C (later in Java) and has had an open source reimplementation since the late '90s (GNUstepWeb, later SOPE, the latter of which is used by [Scalable] OpenGroupware.org). Oh, and WebObjects had much better developer tools than Rails, supported multithreading long before Ruby was able to run multithreaded, and was an order of magnitude or so faster.

    [1] There's some disagreement, related to announcement / beta / shipping dates, but it's either the first or second.

    --
    I am TheRaven on Soylent News
  23. Rarely by jandersen · · Score: 3

    I always see a lot of different opinions about programming languages, but how much choice do you really get to have over which language to use? If you want to develop for Android, then you're probably using Java...and if you're developing for iOS, then you've probably been using Swift or Objective-C. Even when looking for a job, all your most recent job experience is usually tied up in whatever language your current employer insisted on using. (Unless people are routinely getting hired to work on projects in an entirely different language than the one that they're using now...)

    Choice? Nowadays not a lot, I think; when I started way too long ago, you would choose a language that was accessible (in my case, one that I could find manuals for), then choose a job that required it. But back then you could get any number of jobs simply for being able to code. I started off with assembler, BASIC and FORTRAN in the 70es when programmers wrote in all upper case, added COBOL and PASCAL (still upper case languages back then) in the 80es, then C. I got into C++ in the 90es (because "The Future Has Arrived, And It Is Object Oriented"), and in the last decade or so I have used a much diverse range of languages - ksh and python for scripting, C, C++ and Java for application development, as well as whatever else was required on occasion. But C has been my main language for most of that time.

    Maybe the question I really want to ask is how often do you really get to choose your programming languages... Does it happen when you're swayed by the available development environment or intrigued by the community's stellar reputation, or that buzz of excitement that keeps building up around one particular language? Or are programming languages just something that you eventually just fall into by default?

    I think most developers really just code with whatever is used in their project, and will be able to change from one language to another with little difficulty. If I should make a guess, I would say that you start off early in your education by choosing the language that best suits your particular sphere of interest - GUI, back-end, kernel or whatever - but you will inevitably get infected by other languages over time. Personally, I have never paid much attention to what is popular or fashionable, but then I'm not a great follower of trends in general; I just use what seems best suitable. I suppose, when you build up your experience, you begin to notice that the differences between all those languages are fairly minimal - there's the old languages that seem to be made of cast iron and concrete, like COBOL and FORTRAN, there's a load of C style languages (including C++ etc), and then there are the "exotic" languages, if you will excuse my choice of words.

  24. Re:Is this question from five years ago? by angel'o'sphere · · Score: 3, Funny

    I looked at the syntax of Ruby once, immediatly hated it, and never looked at it again.

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  25. Re:So far, I don't by jellomizer · · Score: 4, Interesting

    C/C++ is good for canned software meant for wide deployment where you have fine tweaking of the performance so it can run fast on a big set of software. However scripting languages are good for those internal jobs that need to be fast enough but programmed quickly without all the rigor, so you have a useful app running quickly.
    Most of my programs I make are server side and I rely on scripting languages to do much of the grunt work because they can do it without the fuss of C.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  26. Re:Well... by CastrTroy · · Score: 5, Insightful

    I get where you're coming from. Being a programmer in "X" is more about knowing the tools and available libraries than it is about knowing the language itself. Somebody who works with C# could probably be very productive un VB.Net within a day or two, even though the languages appear quite different. On the other hand, C# and Java look quite similar in their syntax, but generally don't have much in common in terms of actually working with them. It might take a month or more to get reasonably productive it you switched from C# to Java.

    --

    Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  27. Truely switching? Once a decade ... roughly. by Qbertino · · Score: 2

    I don't do ActionScript anymore (for Obvious reasons) and I've been doing more serious JavaScript lately (same reasons).

    I moved into 'serious' PHP roughly 5 years back and will probably use it for another few years. I do various PLs on the side (C#, Python) but not as a mainstay.

    I've been trying to pick up a truly compiled language (C++) for decades and now will probably finally do so. I generally like to pick up languages I expect to use until the day I die. That's why I only use FOSS PLs - ActionScript was a sole exception to that.

    My 2 Eurocents.

    --
    We suffer more in our imagination than in reality. - Seneca
  28. Entirely up to me by jouassou · · Score: 2

    I'm doing theoretical physics, and for the last couple of years, roughly half of my time has been comprised of numerical simulations. I'm free to choose the language I want for the programming part, since the main results that I'm paid to produce are not the simulation codes themselves, but the physical predictions they result in. (In practice, I started this project using Matlab, but it was too slow so I ended up rewriting it in Fortran 2008 for computation and Python for data visualization.)

  29. How often do I *think* about changing? by DoofusOfDeath · · Score: 2

    Every time the C++ standards committee get together.

  30. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  31. Really depends on the context... by Junta · · Score: 3, Interesting

    In my work, we deal with a wide variety (basically a large number of existing projects lead by other groups). So not only language, but style guidelines, processes, everything we adjust continuously to match whatever project we are working on at that moment.

    I have been in other positions where you must not use anything but the one true process, language, and style guideline as set forth by the company standards.

    In terms of when I *choose* for starting new, it's based on the available skills of the team I can put together. Despite all the 'oh language X is better than language Y', 99% of the time it doesn't really matter. You can do most things in any language, so it's most important to select whatever your team is most comfortable with. Yes, the potential performance and resource utilization may be better in some languages versus others, but most of the time with average teams, design choices will matter far more than runtime/compiler differences.

    --
    XML is like violence. If it doesn't solve the problem, use more.
  32. Re:So far, I don't by pr0fessor · · Score: 5, Funny

    So you are the one that writes all those scripts in the task scheduler with no error handling or logging that fail all the time and make my life a living hell.

  33. Re:So far, I don't by pr0fessor · · Score: 2

    Let me guess they are tied to some kind of integration and reporting services that combines many systems that really aren't services they are just a bunch of crap with no documentation and the moron that cobbled it together from a million articles he googled no longer works there.

  34. Re:So far, I don't by Marxist+Hacker+42 · · Score: 2

    He's a parts salesman who did this without checking with IT. So you're absolutely correct. Zero budget other than his own salary, that became two rogue servers living under his desk and his laptop.

    --
    SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
  35. Re:So far, I don't by Marxist+Hacker+42 · · Score: 2

    Zero chance of that in this case. Too much dataflow, from 15 different systems near as I can tell. I just hope he doesn't quit suddenly requiring a policy password change- he's hardcoded passwords in EVERY FREAKIN SCRIPT!

    --
    SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
  36. The first one is the most difficult... by johnlcallaway · · Score: 2

    Once someone learns basic concepts, such as if..then..else, loops, pointers, and recursion for example, many programming language skills come down to syntax, libraries, and debugging. I jumped from programming COBOL for 15 years to C, C++, and Java without any issues, so I'd guess that someone who is a decent developer to begin with shouldn't have too much of a problem shifting gears to most other languages. I've also worked in a smattering of other languages (PL/I, FORTRAN) and far too many '3rd generation' tools. I even once modified code for a proprietary language I didn't even have a manual for.

    Logic, pointer theory, and spatial relationships are probably the hardest things for anyone to understand. Those that can comprehend basic logic constructs and are able to 'see' code in their head can probably easily shift from language to language with ease. Those that struggle with any language probably will have a difficult time picking up new ones.

    I think the biggest deterrent to learning new languages today isn't syntax or how the language works, it's the libraries and associated debugging skills. I had far more trouble learning C, C++, and Java libraries than I did learning the actual language. Modern IDEs make it a bit easier with predictive typing and on-screen syntax checking. But trying to figure out how to read a file or output to the screen can be extremely difficult in some languages because of all the possible options with all of the different libraries. Fortunately, anyone skilled in Google can usually find code examples rather quickly.

    And then there is debugging, which I think is still an art. Many years (decades??) ago, I had a developer come to me with a persistent bug he couldn't fix. After he explained it to me, he started to show me the code. I stopped him, and told him to go look at a specific part of the program, he was missing a period. He thought I was pulling his leg, but left and came back shortly and asked how I knew what the problem was without even looking at the code. I remember saying to him 'Scott .. the only difference between you and me is I've already made that mistake several times'. Debugging, like libraries, in any language takes significant experience to get good at.

    --
    I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.