Why Apple and Google Made Their Own Programming Languages 260
Gamoid writes: This Business Insider article looks into the state of Google Go and Apple Swift, highlighting what the two languages have in common — and why tech companies would bother involving themselves in the programming language holy wars. From the article: "One fringe benefit for Google and Apple is that making your own programming language makes recruitment easier — for instance, since it builds a lot of its own server applications in Go, Google is more likely to hire a developer who's already proficient in the language since she would need less training."
Because CS (Score:2)
Because they studied Computer Science. If it was easier to do, we would also have people making new CPU architectures and operating systems, just because.
Because they're scared of standards based web apps (Score:2)
being the future?
Re: (Score:2)
Universally and without exception?
Don't be stupid. Some web apps sucks, many others don't. Just like applications written for every platform over the entire history of the electronic digital computer.
They don't tend to suck more or less than apps for Windows, Android, iOS, QNX, MacOS, Linux,OS/2, or any other platform -- developed in any language.
Want to see an absurd number of really crummy apps? Look no further than Google Play or the Apple App Store. Do we then confirm that Android and iOS apps suck,
Re: (Score:2)
they're afraid of standards-based web apps
Obviously. Why do you think they developed Dart?
Review of TFA (Score:5, Insightful)
This is a bad article; and the submitter, editor, and readers should all feel bad.
Re: (Score:2)
I was coming here to post exactly this. It is badly-written, ill-thought-out and generally just incorrect. Even a little critical thinking would have prevented this tripe from ever seeing the light of day.
Clueless (Score:2)
"Google is more likely to hire a developer who's already proficient in the language since she would need less training."
This is the worst argument I have ever seen and is a total recipe of disaster. Imagine MS only hiring VB people, Oracle hiring PL/SQL and SAP hiring ADABAS and IBM hiring FORTRAN/COBOL people, where would they be today?
Re: (Score:3)
Its not even logical. If the goal is to hire developers who need the least language training, having your own in-house language is the worst way to go. Clearly google and apple should pick the most popular language if that's what they want.
On the other hand, an in house language probably reduces developer mobility -- they can't go to work for another company if they don't work with common languages.
Because no one else does (Score:5, Interesting)
The reason why companies develop new languages is because the ones coming from academia are focused on the wrong things. Product development requires an industrial strength, strongly typed (for the most part) fast language.
Projects coming from academia are interpreted, JVM based, functional, obsessed with (im)mutability, closures, and lambda functions.
This is not to say those things are not nice, however they are not central to a programming language as used in large scale industrial systems.
Re: (Score:3)
Closures and lambdas are definitely compatible with strongly typed performant code. C++11 has both and is still very performant (std::function is lightweight enough to toss around, doubly so with reference/move semantics) and as an added bonus with C++14's "auto-goes-everywhere" you get output that's strongly typed without the hassle of naming it. Purists can still opt to explicitly type everything if they prefer of course.
Similarly, Apple's block extension to C has all of those and is still reasonably perf
Re: (Score:2)
Nothing you said there contradicts what are said.
Re:Because no one else does (Score:5, Interesting)
As someone who works on such large scale systems, I disagree. When you need to deal with extremely high concurrency the functional paradigm with immutable structures is a really nice way to reason about problems - I'd say it contributes significantly to reliability over standard threaded imperative code.
"Fast" is such a vague term as to be meaningless - but I can say that we typically hit the performance limits of something external (network, disk, DB) before the fact that we're in a JVM makes any difference. If your problem is purely compute then maybe it's worth looking at C or golang, but the vast majority of stuff I work on is network services, and compute is not the bottleneck.
I do 100% agree with the strongly typed bit though :)
Re: (Score:2)
"Fast" is such a vague term as to be meaningless
If only someone could invent an objective measure of speed of execution, using a newly developed unit which we shall call "microseconds" and use that to compare the performance.
On a more serious note, I agree that for many applications time is not that important, but there are many others for which it is. The rendering engine in the browser is one. Any app running in a battery constrained phone is another.
Re: (Score:3)
Whilst I don't disagree that academic languages rarely get used directly in industry, one of the world's most successful industrial programming languages is J
Re: (Score:2)
..and do you know why is interpreted? because it was supposed to run in countless cable boxes which never did. I know, because I was heard the language design and spec in the pre-WWW days.
Re: (Score:2)
It that's what industry needed, Modula 3 could have been a great hit. Object-oriented, statically typed, run-time secure, and compiles to efficient machine code as well.
But the truth is that language popularity is largely a question of fashion, not of technical merits at all.
Re: (Score:2)
It's a combination of fashion, libraries, how big is the improvement over the nearest commonly used competitor, commercial backing, luck, and yes technical merit.
For example, Perl is a language that succeeded on the basis of its powerful string manipulation primitives, which is technical merit, and in spite of its many other technical deficiencies.
Re: (Score:2)
Re: (Score:3)
immutability makes me more productive when dealing with concurrent code because I don't need to keep track of any locks on data structures. Anonymous functions make me more productive because I don't need to keep track of a bunch of names for things that I will use only once.
Really any time I need to "keep track" of something it is draining attention that could be focused on solving the problem instead. The less stuff the language makes me need to remember the better, garbage collection allows me to not kee
Re: (Score:3)
> were you seriously being held back by having to name the function before passing it on as a parameter?
The point of Lambda-functions is not to avoid a name, but to include the function definition inline in another function call. it makes much shorter code that is much easier to read.
Taylor Swift (Score:2, Funny)
Someone at Apple just has the hots for that blonde singer.
I don't blame them. :)
better language? (Score:5, Insightful)
is it really impossible for anyone to believe that a language and toolchain can actually
make an organization more productive?
it seems like everyone is so lost in technical marketing that they've forgotten
about actually programming computers
Here we go again (Score:2)
More change for the sake of change
Typical Business Insider Conspiracy Theory. (Score:3)
The makers of this article clearly have no background in computing, or journalism either for that matter. I'm surprised I didn't see a reference to the Illuminati in there somewhere. Bizarrely, the article doesn't even mention Dart, which is no doubt due to the two-minute Bing search that I'd imagine formed the entirety of their background research.
When considered against the status quo for their purposes and eras, all of these languages show significant, useful advances in programming. And if we're going to declare all languages that are created by a for-profit corporation invalid, say goodbye to Java, C#, C++, and C. Hell, even the Jacquard Loom was meant to make money.
Not recruitment, retention (Score:4, Insightful)
Re:Not recruitment, retention (Score:4, Insightful)
Re: (Score:2)
No, it's the same mechanism; just think of the third-party developers as "your" employees (share-cropping is quite an apt comparison). If they write their cool apps in a language only your platform uses, they are much less likely to port it to other platforms. You get more "exclusive" content, and your share-croppers/valuable partners are less able to leave for better terms elsewhere.
Re: (Score:2)
Re: (Score:2)
the opposite is probably true - the experienced employees will look at their skillsets and start to think how unemployable they are becoming, and jump ship while they still can.
I've seen it happen with a company that used a DSL, people gained skills in various systems (eg DBs, SQL etc) and then jumped when they could. All the remaining devs were either then ones making the DSL or were new kids who were just happy to have a job.. until they too realised their skills were not up to much.
Re: (Score:2)
That is a far more valid explanation. Of course, it is highly immoral, so the PR types do want to avoid it. But it makes a lot of sense.
Logic Fail (Score:4, Insightful)
One fringe benefit for Google and Apple is that making your own programming language makes recruitment easier --- for instance, since it builds a lot of its own server applications in Go, Google is more likely to hire a developer who's already proficient in the language since she would need less training.
And had Google used C, it would be more likely to hire someone who's good with C, since they would need less training.
How stupid is this argument... (Score:4, Insightful)
Because if they used, for example, Java, when they hired an experienced Java developer they would need MORE training?
Approximately how large is the pool of 'experienced' Go/Swift programmers outside of Google/Apple?
Google vs Apple? (Score:2)
The media is so fixated on these two companies that they're leaving out other competitors that don't come to mind in this exact same sector.
Facebook now has their own language: Hack. It runs on their own interpreter: HHVM.
This is similar in mind to the jump from C to C++, wherein existing PHP code mostly runs on HHVM unmodified, but switching to Hack adds a couple restrictions (fixing long standing issues with the PHP language), while adding countless new features (such as type safety and parallel I/O)
But F
Utter rubbish (Score:2)
Choosing to do all internal communication in your own language makes recruitment easier -- for instance, since it builds a lot of its own body of literature, WePretendToBeDwarfsOutOfTolkien Inc is more likely to hire a developer who's already proficie
Hey, C was created in Bell Labs to develop UNIX (Score:2)
It's no surprise that big programming organizations develop new languages to better suite their own needs. If you are running a large server farm, a language that helps you have 25% fewer memory corruption crashes without sacrificing speed is a huge thing. Outside adoption may vary, but over time some will succeed and supplant C/Java as default choices for new projects.
Personally I am hoping for something that unifies memory and external resource management without leaks, crashes or perceptible GC pauses. T
Wouldn't want to work at either place. (Score:2)
The thing about companies of that magnitude is that unless you're a rockstar programmer (most of us aren't) you're just signing up for some bullshit lord of the flies atmosphere where the job is so internally competitive that it becomes overly stressful and completely unenjoyable. Yes the pay is probably good, however the environment is anything but healthy.
You're not a real programmer (Score:2)
You're not a "real" programmer until you've rolled your own framework or language. Sooner or later, everyone worth their salt gets some "bright ideas" and gives it a try. :)
What demands (Score:2)
"Similarly, Go was designed to make it easier to build complex systems. The old workhorses of the networked software programming industry, C++ and Python, just couldn't keep up with the demands that Google was placing on it."
Is there an explanation of what those demands could be? C++ and Python are very different languages in every way
Language learning is only a factor at the low end (Score:2)
People that are actually good at developing software will be so in any language after a short time. People that are at the low end of the skill range will learn these languages like Go in order to have some skill at all. They will still produce code that sucks though. Or said differently: Preselecting candidates based on whether they know a specific language is usually a hugely expensive mistake in the long run. Not that other companies are routinely making this basic mistake all the times. Just shows that
When you are as big as Google or Apple... (Score:2)
You won't create a new language if you just need to develop a small app, however, when things become big, creating a new language to fit what you are trying to build may become a worthwhile investment.
Good programmers can pick up a language very quickly anyways.
Google didn't create their own language (Score:2)
They hired Rob Pike.
Comment removed (Score:5, Interesting)
Re:That last sentence makes no sense (Score:5, Funny)
BI == Business Idiots (Score:5, Insightful)
Really. That last sentence proves it. They have no fucking idea what different languages are good for, or not.
Re:BI == Business Idiots (Score:5, Interesting)
Right. Apple created Swift because Objective-C was a nice language for the requirements of '90s computing, but is starting to be limited by its C heritage. They needed a more modern language that interoperates very well with Objective-C (because they have a lot of legacy Objective-C code that isn't going away any time soon) and this required making a new language because there weren't any good contenders available. MacRuby is the closest, but falls short in a number of areas.
Google didn't create Go as the result of some corporate masterplan, a small team at Google created it and managed to get buy-in from some other groups at Google. It's still far from the most widely used language for new projects inside Google, but it does have some advantages (though is slightly let down by Rob Pike's refusal to accept that some people who are not Rob Pike have had good ideas in the last 30 years).
The recruiting thing can't really work. It would only really make sense if people would learn a cool language and then discover that there are very few places where they can work and use it. This is sort-of true for something like Erlang or Smalltalk, but Swift is fairly widely used by people developing for iOS and OS X (and would probably not be worth Apple's effort in developing it if it weren't). If the language is successful enough that enough people are learning it to significantly affect the pool of potential applicants for a company the size of Apple or Google, then enough other companies are likely to be using it that it isn't a significant benefit.
Re: (Score:3, Interesting)
And if Pike had the general credibility and design sense of Torvalds then there'd be no issue, of course. In fairness, Torvalds' job is easier because cloning a UNIX kernel is the least interesting design space imaginable: you just do what was done before, but better. Designing a new language is harder.
Still, the problem remains, that Pike is no Torvalds. Yes he did some good stuff a long time ago. But Go sucks.
Go suc
Re: BI == Business Idiots (Score:4)
1. There is a custom debugger for go: https://github.com/derekparker... [github.com]. Also worrying this much about debuggers is kind of sad, what will happen when you literally can't use one or it doesn't help? Oh you have never done embedded or distributed work I see.
2. Nope (also [citation needed]). The go compiler is fast because it doesn't use modules/header files. See the C++ working group on the subject to understand why it is so slow: http://llvm.org/devmtg/2012-11... [llvm.org]
3. "Built in functions". The built in "generics" are not functions, they are data types. And no you probably don't need them.
4. I'm sorry you don't catch your exceptions. Your coworkers are too.
5. A definition of systems that tons of people use.
6. Godeps. Or like 30 other ones. Java and C++ don't come with a version system either, but you probably assumed Maven was part of the core. 7. Guys CPU profiling for a server side language doesn't work on OSX (except it does).
8. Go doesn't have a virtual (byte code interpreted) runtime, so its nothing like the JVM. And yes every language has a runtime. I mean literally what?
9. Nothing of value here folks.
10. Or here.
There are things wrong with Go, but none of these are them. In fact this post shows such a stunning lack of understanding about programming languages it worries me.
Re: (Score:3, Insightful)
There are things wrong with Go, but none of these are them. In fact this post shows such a stunning lack of understanding about programming languages it worries me.
Sadly, this is typical in the industry.
I'm a C kernel guy who has to wrestle with a lot of application developers who assume I don't know anything about "the cutting edge" because C lacks pretty much every feature they claim to depend upon.
I embraced Go recently, but I got there through Erlang. so my idea on what it's really good at and how to use it is going to be different than someone who is trying to use Go as a replacement for Java or Python.
Re: (Score:2)
Nope (also [citation needed]). The go compiler is fast because it doesn't use modules/header files.
There are three compilers for Go, one based on the Plan 9 stuff, one a GCC front end, and one an LLVM front end. True, none of them use header files, but this is really something that doesn't affect C-family languages if you use precompiled headers. The Plan 9 implementation is fast because it does a tiny subset of the optimisations that GCC or LLVM would do.
The GCC and LLVM-based compilers are have similar compile-time performance to C or Objective-C. They're only faster in comparison to C++ because
Re: (Score:3)
If you're targeting C++/Java developers with a new language, then if you're successful you do indeed get less interest over time from that group. Those who agreed left and joined you; those that stayed will like your offering less than average; the remaining non-converts become less receptive to you over time. This is true even assuming nobody ever changes their opinion; they either liked the new thing when they saw it, or not.
The case where interest "increases" is where they are saying, "awwww, how cute...
There is a minor recruiting benefit, only to "go". (Score:4, Insightful)
There is a minor recruiting benefit, only to "go".
WHY SWIFT IS NOT BENEFICIAL:
Internally, Apple doesn't write a lot of Apps; they might, eventually, convert some of their existing large applications, like Pages or Mail.App, over to Swift; these will largely end up being rewrites. So while knowing Swift might make you better able to get a job at a software house targeting Apple's platforms, it's unlikely to be meaningful in getting a job at Apple.
On the other hand, one benefit to Apple is that if Swift is not strongly used internally, the demand for App developers is unlikely to hire away Apple engineers out from under Apple, which was a big issue with the Objective C "brain drain" when iPhone and other apps took off. One of the things that Apple did, for example, was not let registered developers who were also Apple employees, take App programming classes held by Apple, for a period of six months after they started offering them to non-Apple employees. So there is an "anti-recruiting away of Apple employees" benefit to Apple.
WHY GO IS BENEFICIAL:
The recruiting benefit of "go" is clearer, although even with gccgo, go is not very portable to non-Linux platforms, despite its claimed platform support (for example, the standard libraries *still* have some serious compatibility issues on Mac OS X, despite the fact that almost every Google employee has an Apple laptop).
One thing that companies like to hire is young people; on the theory that "you can't teach an old dog new tricks", someone who knows "go" is a lot more likely to be younger, rather than older. It's not valid due to the theory, but it is nevertheless valid enough that you can pretty much use it as something of an age filter, and legally get away with doing do.
Another thing it means is that you're willing to learn new things; a surprising number of people aren't. If you got into software engineering for the money, and you are just using it as a "paycheck continuation program", instead of actually being passionate about it, it's unlikely that you've bothered to take the time to learn "go".
These are relatively minor benefits, since it doesn't take that long to learn a new language well enough to work in it pretty extensively; so training is not really a benefit, as the article claims.
Comment removed (Score:5, Informative)
Re: (Score:2)
Re:That last sentence makes no sense (Score:4, Informative)
"I'm still scratching my head over the use of "she" instead of "they" in that sentence."
It's Corpspeak. You have to use a precisely equal number of male and female pronouns, even when that means shifting gender confusingly back and forth throughout your Powerpoint presentation. But if your presentation contains a example of bad procedure, you have to use a male pronoun at that point ("If the nurse were to stick his finger in the 220V socket during Step 5...")
Re:That last sentence makes no sense (Score:4, Funny)
Welcome! We're always glad to see representatives of HR visit us on Slashdot. Next week as you write a requirement for five years of Swift into that new job posting, you can thank us for having inspired you in your quest for offense-free skill categories.
Re:That last sentence makes no sense (Score:4, Informative)
Masculine pronouns can be used in the gender neutral sense in English. Feminine pronouns cannot. Posting as AC because I don't want saying obvious fucking truths archived on my slashdot account, thanks to the witch hunts political shitfucks will inevitably engage in.
Re:That last sentence makes no sense (Score:5, Funny)
Yes, it's very unfair to men that they don't have their own pronouns.
Re: (Score:2)
Doesn't always work. Sometimes it just looks wrong if it's clear that only one person is involved.
[Opens can of worms] Of course there's always the singular "they" ...
Re: (Score:2)
Aparently the use of the word "they" as gender/number fuzz dates back a long way. Long enough that it's considered no less correct that a lot of other rule-breaking exceptions to the supposedly logical structure of the English language.
Maybe I'm showing my age and upbringing, but use of "she" in a document mentally throws my gender-neutral/faceless person reading out of whack in a way that "he" does not. I can live with "they" if other people have the same reaction to "he". It's less grating then (sic) when
Re: That last sentence makes no sense (Score:2, Informative)
Very well, actually. ADA is very good at what it does well, which is creating deterministic code that can be procedurally validated. It was created for a design environment that is the exact, deliberate opposite of Agile. If you think you should build once a day or week, then ADA is not for you. If you can not simulate your live environment because it's a thousand miles up in orbit and a bug costs half a billion dollars and 2 years to the next launch window, ADA is for you. If virtually memory machines are
Re: (Score:2)
Hire well-trained polyglots.
When was the last time that you saw a recruitment ad for a polyglot?
They all demand specific (and often unrealistic) experience in a specific language or small set of languages. Usually paired with specific platform.
Companies don't want flexible people, they demand cheap easily-replaceable cogs. And what they often get are people willing to lie about their experience, since the "must-have" list is so long an inflexible that maybe 3 people on the planet will fit and all of them are undoubtedly already making
Re:Huh? (Score:5, Insightful)
It weeds out the people who aren't fan-boy enough to become proficient in your proprietary language before you even interview them. TFA cites a lot of other reasons they wrote these languages. This one got crab-apple picked for some reason.
Re:Huh? (Score:5, Insightful)
Exactly, this doesn't make sense at all for recruiting, it's actually backwards: using your own programming language makes it far more difficult to recruit, because very few people from outside your organization will have any expertise in the language.
Re:Huh? (Score:5, Insightful)
But they don't have a shortage of applicants [smartrecruiters.com]. They actually want to narrow the field. If that were not the case, Google wouldn't have had (perhaps they still do) such a notoriously difficult interview process.
Economies of scale are critical here. Only a handful of companies are that big, and that desirable as places to work. So for these behemoths the usual logic is inverted. For them, narrowing the field really does "help recruitment"--the semantics of that phrase are inverted when dealing with relativistic money.
Re:Huh? (Score:5, Insightful)
Economies of scale are critical here. Only a handful of companies are that big, and that desirable as places to work. So for these behemoths the usual logic is inverted. For them, narrowing the field really does "help recruitment"--the semantics of that phrase are inverted when dealing with relativistic money.
A filter is only useful though if it removes the bad applicants and leaves the good applicants. Filtering by language (/framework) although common is also a very good way to exclude a significant amount of programming talent on the basis that you don't want to give them a few weeks to get productive in your pet language/framework. I've never interviewed (or applied) at either but both Google and Apple seem to have more farsighted hiring practices than that.
Re:Huh? (Score:5, Insightful)
Re: Huh? (Score:5, Insightful)
Plenty. All of your criteria have little to do with the language and much more to do with the developer. Any properly defined/debugged program is "safe". Any properly optimized program is "performant". "Clear" is just about source code, which means that it's entirely up to the developer.
ISO 9899:2011 [iso.org].
ISO 14882:2014E [isocpp.org].
ECMA 334 [ecma-international.org].
Swift is a "lookalike" to all of these in several ways, especially as that list goes on. The list of languages that aren't ancestral to Swift but that have standards could go on for quite a while longer.
Re: (Score:3)
If you won't acknowledge that the language can guide users to make the correct choices then I think you're missing the point. By your definition ASM is safe and clear. Personally I prefer to have projects coded in a language that encourages expressiveness and convention, but that's mainly because most of my time is spent on systems that are designed to live for 15-20 years. Reducing or eliminating maintenance time is more valuable to me than pure wire-level performance. Others may have different trade-o
Re: (Score:2)
That's somewhat the point. I'd guess that these companies are swamped with more job applications per opening than they'd like. This way, as suggested above, they cull the fanboi wheat from the chaff. Can't blame the companies giving preference to someone willing to learn their in-house language on their own.
Re: (Score:2)
Exactly, this doesn't make sense at all for recruiting, it's actually backwards: using your own programming language makes it far more difficult to recruit, because very few people from outside your organization will have any expertise in the language.
And it's made even more difficult by the industry-standard HR practice of, a year after the language is developed, advertising for entry-level programming positions where the candidates have to have five years experience with the language.
Re: (Score:2)
The problem with this, as I see it, is that I don't think you're necessarily as likely to get quality people, in fact you may very well get worse people because they're sycophants/fanboys. An organization should do better with employees with more diverse opinions, not a bunch of yes-men.
And considering the lack of quality we've seen in a lot of the products from Apple, Google, and MS over the years, I think my opinion has merit here. Google, for instance, used to be famous for great products, but in more
Re: (Score:2)
Most likely as an excuse to toss in "she" to help enlighten the sausage-fest here...
Re: (Score:2)
On the other hand, there are a LOT of far more capable programmers out there that are excluded because they haven't wasted time learning your internal language that's pretty much only applicable if you already work for them.
In other news, NASA has developed a new language this year to make communicating with Martians easier. If you'd like to submit an application, please be aware that they require fluency in their new language along w
Re: (Score:3)
*fewer
Re:Huh? (Score:4, Insightful)
MSFT set the standard (Score:2)
Easy; recruit the students who wrote thesis in *your* language.
Push it into the Universities (stray Dollars help), drive curriculum, ensure adoption.
Re:Multiplatform is king - and Go is multiplatform (Score:5, Informative)
From wikipedia
Go's "gc" compiler targets the Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, Plan 9, and Microsoft Windows operating systems and the i386, amd64, ARM and IBM POWER processor architectures/ A second compiler, gccgo, is a GCC frontend.
So there are two major compilers for Go already, one of which is gcc based which targets just about every platform under the sun. I'm not saying go will run everywhere gcc will compile code because the runtime also needs porting, but it is very cross platform.
I developed one of my command line apps in Go http://rclone.org/ [rclone.org] and I release binaries for it which run on Windows, OS X, Linux, *BSD and even Plan 9 all cross compiled from my Linux workstation.
Re:Multiplatform is king - and Go is multiplatform (Score:4, Insightful)
It doesn't matter how many platforms Go compiles for; what matters is how much demand there is for Go programmers. Outside of Google, the answer is approximately zero, so it's a bad choice if you're worried about your continuing employability. C++, on the other hand, is used all over the place, so it's a very safe bet.
Re: (Score:2, Interesting)
It took me less than a week to learn go. I still don't know all of C++ after two years. Learning Go was not a bad investment: the perspective I learned from it helped me write better C++ and C# code from both a OOP design perspective and threading perspectives, and is also a nice thing for my resume (Maybe is helped me get my option to work for Google, I don't know).
Re:Multiplatform is king - and Go is multiplatform (Score:4, Insightful)
He means "I tinkered with this new thing and it seemed pretty easy enough, so that was enough - I never needed to use it, so I never found out all the edge cases I know about in the mainstream languages I use every day".
Its why many people like new languages and things, they think they're simple because they only have to scratch the surface for some simple example and think that's all there is to it.
Re: (Score:2, Informative)
He means "I tinkered with this new thing and it seemed pretty easy enough, so that was enough - I never needed to use it, so I never found out all the edge cases I know about in the mainstream languages I use every day".
No, that's not what I meant. After spending a week learning Go, I wrote a couple of applications in it, but after the first week I was not learning Go, I was learning libraries and patterns.
Read the Go spec: these is almost nothing to it. The language has ridiculously few features. The main design goal of the language was to make code very readable and maintainable which means all devs basically know the entire language spec.
Don't read the C++ spec. You don't have time for that and it keeps growing. C++ has
Re: (Score:3)
I'd define 'learn' as be able to read 90% of the code that's out there. And yes, I can easily see C++ taking years by that standard.
"Yes, our code *does* overload the 'space' character, I thought you said you knew C++!" :-).
Re: (Score:2)
And Apple's been doing this for longer. Even though Objective-C is technically not a platform-exclusive language, it currently is for all practical purposes. That's why I never bothered to spend any time learning it.
I have done C#, but only when someone was paying me to do it. Haven't really done it on my own time. (Even if it is also technically cross-platform, its still 99% a Microsoft-universe language. At least its similar enough to other languages that it wasn't much trouble to pick up.)
Given the cho
Re: (Score:2)
Objective-C is very, very, very usable on any *nix platform. If you think it is only useful in Apple proprietary environments, that says a lot about you and nothing about Objective-C.
The only time there is any Apple-specific constraint is when you're using their libraries. That may be most often the case, but there is no reason that it needs to be on your own projects. Serious projects don't just glom onto whatever the nearest proprietary library is, they actually have to evaluate options and make choices.
Re: (Score:2)
There's already solutions like Xamarin that get C# working on quite a few platforms, and Microsoft is pushing to make it work on all platforms as well. I hope they guan get visual studio working on other platforms and make something that allows me to write code once and have it run anywhere, even if I have to tweak the UI for different platforms. C#, Visual Studio, and the .Net runtime is one of the best programming environments there is. Windows app development is so much less painful than Android. If they
Re: (Score:3)
I hope they guan get visual studio working on other platforms
To that end, you could try out Visual Studio Code [visualstudio.com], which was introduced at the build conference this year.
Re:Dumb argument (Score:5, Insightful)
Re: (Score:2)
Yeah, those "benefits" make no sense.
C#, a relatively new language, has a massive library of solutions created for it, tons of open source code out there to leverage for everything from server applications to mobile games. Go and Swift? I'd be surprised if there is a tenth of a percent of the open source code out there as there is for C#, which is further dwarfed by C++ and again, by an order of magnitude by C code.
Of course, C# has a much larger ecosystem, which is also kind of the point.
As for hires who "
Re:Fringe benefit (Score:4, Informative)
Of course, C# has a much larger ecosystem, which is also kind of the point.
Of course, C# is also Microsoft's baby, which is enough to disqualify it from use inside Apple and Google all by itself. Nobody at either of those companies is going to risk relying on Microsoft's intellectual property for anything mission-critical.
Re: (Score:2)
sure, but then they could just stick with C++, and focus their energies on making good quality libraries and tools to work with it and let the good developers learn how to use it properly.
Its not as hard as many people think, but maybe they're confused by the possibilities the language affords, many of which nobody uses for day-to-day programming tasks.
Re: (Score:2)
*eye ball roll*
Why. It's not criminally PC to use either singular pronoun when referring to a hypothetical person. I think the fact that you felt it necessary to comment on it says more about you than the author.
Re: (Score:2)
What bias? A bias against assuming all programmers are men? Guilty.
How does using "she" differ from using "he"? Why is "he" an acceptable default but "she" not?
Re: (Score:3)
Re: (Score:2, Funny)
Re: (Score:2)
Why single one group out at all? Why not use "he or she"
Because it's awkward. Apparently, not many people know how to use 'they' as third-person singular pronoun.
(Inexplicably, they don't seem to have any trouble using 'their' that way. e.g. "One of the editors left their brain at home." I weep for the future...)
Re: (Score:2)
C has been around since 1972.
Re: (Score:2)
Why on earth did you put standard in quotes? Java and C++ are absolutely standard languages. They are everywhere. C++ will remain that way for... ever?.. and Java's big risk is that Oracle might win in court, but even with that it will be standard for a decade or two.
And I'm really not convinced that these companies have "requirements" that standard languages don't meet. At least, not technical requirements. Technical lockin is the go-to explanation for any in house language in this day and age. Devia
Re: (Score:2)
I think the lawsuit will determine how Java goes. If you can't reimplement any more, only fully open languages will be taken seriously by anyone. But even then, Java will be a real factor for quite some time.
Re: (Score:2)
Nobody except Android app developers really gives a rat's fat ass what happens to Google's bastardization of Java. Do you really think all those line of business and corporate web applications written with Java and JEE are going to go away because Google gets kicked to the curb?
Re: (Score:2)
Err... what?