It's almost entirely analogous in my mind to the idea that because there are books that perhaps feature words like "sex" and "miniskirts" that this is offensive, the entire author community is broken, and this is why women don't read books! GUYS GUYS, we absolutely need to start censoring what people can write about! FYI, I think we should all base our moral code on the American christian values...just sayin'!
Here's an idea - women aren't all delicate flowers you need to white-knight on the internet. They can handle seeing words like "bj" and "shag".
I'm surprised nobody has mentioned Android yet. When you add in the Android factor, Java is probably still one of the most widely used programming languages today.
It's funny the article straight away brings up the verbosity argument as well. You want to talk about verbosity - take a look at Objective-C and Cocoa (again, hugely popular today!)!
Popular in terms of use, yes, but liked? I don't know, I doubt it. Android and iOS essentially force you to use Java or Objective-C respectively. I don't hate Java, but I don't like it either. It lacks quality of life features that other, similar languages have had for years. I can't stand writing code in it if I don't have to (and don't get me started on Objective-C...)
From what I hear from others and read on a weekly basis, few people enjoy writing Java code. It may not be dying in terms of numbers, but given an option to use something else those numbers would likely drop very quickly.
I find that he is in a good position to do so because C++ evolved based on feedback from people using it and he was responsible for the first version(s).
Nowadays the consensus is that C++ introduced more problems into the industry than it solved. Moreover it keeps introducing more and more problems with each new revision.
In this light his statement is merely an attack upon his critics e.g. "Haters gonna hate..." while ignoring the possibility that criticism of "his" programming language is well founded.
Sure people bitch about every language sometimes. Hell I bitch about languages I use now and then, but I keep using them.
While systems programmers are fleeing from C++ back to C(!!!) and to newer languages like Go (for which the core design principle could be described as "Not C++").
To me his statement sound like a chronic alcoholic saying "There are only bad kids and kids you don't have."
> While systems programmers are fleeing from C++ back to C ...
Really?
GCC is now developed in C++.
Clang is developed in C++.
Mac OS X I/O Kit makes use of a C++'s subset.
Windows drivers can be done in C++ since Windows Driver Kit 8, while most new native APIs since Vista are COM based. With Microsoft only supporting enough C99 to comply with C++11/14, while helping porting FOSS C projects to Windows.
OS/400, BeOS and Symbian make use of C++ on the kernel.
"While systems programmers are fleeing from C++ back to C(!!!)"
Example? I know of new developments in systems programming written in C++ (LLVM, clang, WebKit, FireFox (or did that start in C?)), I know of some that moved from C to C++ (gcc, maybe FireFox), I know of new developments in C (Linux, git), but I not aware of any system going from C++ to C. They may exist, but I would need more than a few examples to be convinced of the existence of a general trend.
Looking at http://images.content.ubmtechelectronics.com/Web/UBMTechElec..., I can see where that argument comes from. Looking solely at the C++ data across the years, slides 20 and 21 can be seen as indicators that C++ peaked in 2011. If that's the case, however, C peaked in 2012.
Also, for C, there seem to be fewer 'next' projects than 'current' projects, while for C++ those numbers are about equal.
Extrapolating like mad on almost no data, one could argue that C is on the way out in favour of Python, Java, and C#.
.Net is on the decline, though, so there either must be tremendous growth in the use of Mono in embedded software, or that data must be taken with a grain of salt. My money is on the latter, but surprise me.
I'm a systems guy and I love C for its simplicity. There certain problem domains which C++ is better suited for, but everything being equal, I'll chose C every time for its simplicity (don't give me the whole "shoot your foot off" argument. I know, but this is not much of an issue for experienced and competent C devs)
So by not changing X they are automatically and implicitly disagreeing with any complaints referring to X? You're reaching.
EDIT: In case my point wasn't apparent, the language is under active development by an open, international standardisation committee, of which Stroustrup is an active and prominent member. They are well aware of the complaints, but the problem is that every change involves a tradeoff, and sometimes that tradeoff is just not worth it.
I find the descriptive nature of method signatures to be quite delightful. Unlike other languages like C++, I don't always have to go looking for the function definition to see the types of the parameters it takes, and what exactly was the order again? Combined with Xcode's autocomplete, it saves a lot of time.
I shed a small tear every time I have to call a C API with and endless parade of (NULL, NULL, 0, NULL).
In C99 it's possible to use compound literals to implement something like named parameters. You create a struct with all of your parameters, and only include the ones you want to set in the compound literal. Anything not explicitly specified in the compound literal gets set to 0, so the caveat is that 0 can't be a valid value for your parameters.
I have been using Scala for both server-side and Android projects. Android doesn't have such a capable VM and Scala is a little wasteful in terms of short-term objects, but using Scala while being mindful about performance implications of the code you write is still better than Java. In fact on Android you can use pretty much any language under the sun, including languages that don't run on top of the JVM. The development experience may not be as great as when using Java, sometimes you suffer from interoperability issues and so on, but for personal projects it's OK.
iOS doesn't force you to use Objective-C either. For example many top games or apps have been built in C#, by means of Unity or MonoTouch. The problem with iOS is Apple's developer agreement, as they first didn't allow apps written in anything else than Obj-C, after which they changed that to not allowing apps doing JIT compilation, but now they only enforce this rule when banning apps that download and execute code on the fly. For this reason, when embedding a WebView inside an app, Javascript will not have the same performance as Safari's Javascript engine, which is kind of stupid. So many devs prefer native compilation to avoid any problems. There's nothing wrong with iOS as a platform, what's wrong is with Apple's restrictive policies.
We've got a parable in our country about a lazy bastard, that couldn't do anything out of laziness to the point of dying from hunger. One day a woman offers to help him, to give him shelter and food. To which the lazy man asks in response ... will you soak my bread? (sounds much better in Romanian)
Fuck dude. You're a developer. If you want productivity, make shit happen.
I think that they are saying that Scala is the proverbial bread being offered to you, and your concerns about productivity are akin to insisting that your bread be soaked so that it's easy to eat.
If that is what they're saying, I disagree with them.
Unfortunately, most of these polls don't really talk about the context. I don't think I've ever been as unhappy as a developer (in terms of the tools) as when I was required to use Spring, Hibernate, Eclipse, and so forth to do web development. There was absolutely no reason we couldn't be using Rails or Django for our needs - this was a top down management situation, and I'm sure my political frustrations contributed to my unhappiness.
However, a recent coursera course on Data Structures and Algorithms used Java, and I really didn't mind it at all. I'd even say I found it reasonably pleasant to use Java.
when it comes to large, complex, distributed, long-living projects, java is the best choice. sure, I can build a quick prototype using python, php, node, ruby, its hard to rely on them when the project becomes large, distributed, complex etc.
IMHO its the only language that allows to create great server side programes, awesome desktop GUI applications, mobile applications or embedded applications. All in one language.
I'll agree there of course; as an ecosystem it's hard to match due to the availability of libraries and ease of platform swapping. My original comment was targeted purely at the language syntax and semantics. Like I said, there are many reasons to use Java, but I'd rather use something else given the choice
> You can use many languages which compile down to Java Byte code.
And then you end up with subpar performance and application size :(
I had high hopes for Mirah for Anrdoid development few years ago, but it unfortunately fade away. It was basically Ruby like language that compiled down to pure java bytecode without a need for any runtime. That would fit Android perfectly.
If Java wasn't the most used language out there, Android almost certainly made it so.
I quite like Java too, besides C#, I don't think there's any good alternative for bigger projects.
My dream would be Ceylon replacing Java some day. After looking into many newer languages aiming at a similar market as Java (Scala, Clojure, Dart, Kotlin), I believe that Ceylon is the best-designed statically typed programming language out there.
They've made incredibly good and pragmatic trade-offs between features, readability, verbosity, expressivness, speed, toolablity, familiarity, etc.
Android doesn't really count as java, as it doesn't use the JVM.
But even if you do choose to count it, it's only a very small part of the java ecosystem. Applets are dead, and java desktop applications unpopular, but without you necessarily seeing it, enormous amounts of server side software are made with java. If it hadn't been Java, it would have been some other language, but the fact is that there is such an enormous ecosystem of high quality libraries, tools, infrastructure and experienced programmers, architects and devops built around Java and the JVM that I don't see anything toppling it from the #1 position any time soon.
C#, being a better designed and more rapidly evolved language, might have displaced it if Windows rather than Linux had become more popular as a server OS, but it didn't, and now it won't, so that is moot.
> I'm surprised nobody has mentioned Android yet. When you add in the Android factor, Java is probably still one of the most widely used programming languages today.
Except that Oracle was right into suing Google, after all.
Google hasn't improved the language level beyond Java 6 grammar.
So nowadays one is forced to write in Java 6 when targeting Android, which is really a pain, specially when writing libraries.
This will only get worse when Java 8 gets released. No lambdas or other Java 8 goodies for Android developers.
Plus, they haven't bothered to improved GC and JIT on Dalvik past the Android 2.3 release.
They seem to care only about pushing libraries for Google APIs nowadays.
> Google hasn't improved the language level beyond Java 6 grammar.
That's because Oracle has been suing them over it. Dalvik hasn't changed in years thanks to that lawsuit. Google was steadily improving Dalvik right up until that lawsuit happened, then it came to a screeching halt. That's not a coincidence.
And really, what Java 7 language level features were there that makes it problematic that Android still runs Java 6? The good stuff was dropped from 7 and pushed to 8. 7 is boring.
> That's because Oracle has been suing them over it. ...
Sun just did not sue them, because they lacked the money. James Gosling confirmed this.
> And really, what Java 7 language level features were there that makes it problematic that Android still runs Java 6? The good stuff was dropped from 7 and pushed to 8. 7 is boring
- Strings in switch
- Try with resources
- Multiple exceptions in catch
- Simplified IO
- Diamond type inference
- invoke dynamic optimizations
Any Java library targeted for Java 7, even without the new language features, is also not usable in Android projects, because Dex cannot understand the new Java 7 bytecodes.
<quote>
In his testimony last week, Schwartz explained his "grit our teeth" strategy after Android had its public debut as an incompatible variant of Sun's Java. "We saw a handset bypass our brand and licensing restrictions...we decided to grit our teeth and support it so anyone supporting it would see us as part of the value chain," he said. Apparently, continuing to seek a way to work with Google -- to turn lemons into lemonade, as Gosling wrote -- was preferable to engaging in a costly lawsuit.
</quote>
So Sun chose not to sue Google, because it would be costly (and because they knew they'd lose). They could have afforded it, but they chose not to.
History shows that was probably the right decision - As previously mentioned Google kept Android Java close to Sun Java, while now they have stopped updating it and may be considering other platforms.
BTW, you realise Gosling isn't exactly an impartial player here, right? He's always been against open sourcing Java (and open source generally: the EMACS wars probably had something to do with that), and sees what Google did as justification for his opposition. Others (including myself) see Google's actions as vindication of the Java Open Source strategy: it expanded the Java ecosystem into new fields, and made Java more important, not less.
Simplified IO is a library feature, not a language feature, and Android has its own IO stuff anyway.
Diamond type inference is cute, but hardly important. You could do the same thing with a save macro in your IDE.
Try with resources is about the only thing in that list that would be actually useful in Android.
> Any Java library targeted for Java 7, even without the new language features, is also not usable in Android projects, because Dex cannot understand the new Java 7 bytecodes.
So target Java 6 if you're making a library. Which is what people do anyway, because not everyone has immediately jumped to 7.
And none of them will run on J2ME which Sun/Oracle never upgraded past 1.3 for Pete's sake. If not upgrading Java was worthy of a lawsuit, we should be class action'ing the hell out of Oracle for the crime against humanity that was J2ME.
BlackBerry was also 1.3 right up until the end.
Android right now is only using a version of Java that's ~1 year out of date. That's still a shitload better still than Sun ever managed to do on mobile.
> Google is a corporation like any other.
Cows go moo.
Saying irrelevant facts is fun! You're on to something here I think.
Actually, you can use the following on Android from Java 7 and 8:
- Case/Switch Strings
- Auto closing files handlers (via adding a few classes/interfaces). Also known as "try with resources"
- Integer literals
- Multiple exceptions in a catch block
- Lambdas via RetroLambda[2], which compiles Java 8 bytecode into 7 or 6
Used them all in several projects with 20-100k+ downloads with no user reported errors related to their usage. New Android projects though, I rather just use Scala, but older things I don't want to convert, I use the above to make Java easier to manage.
I actually wrote an essay about this few months ago, Android was indeed one of my major points: https://medium.com/i-m-h-o/da3b2c180e9c (Why Java Is Still Relevant)
I wonder if people will look back at this period and shake their heads or if things are only going to get worse from here on out? Is our obsession with these gizmos a temporary aberration caused by their newness and the fact that we haven't yet adapted to having them in our lives?
This video sure does hit home, if only because I see a little of myself in there.
> Is our obsession with these gizmos a temporary aberration caused by their newness and the fact that we haven't yet adapted to having them in our lives?
(emphasis mine)
Newness is certainly part of it, but not in the way I think you meant. It's not that the devices are new, but that the devices promise to deliver a never-ending stream of newness. There was a study done on the effects of always-available, always-fresh material right at our fingertips; newness as a drug. I don't have the citation for that off-hand, but maybe someone else will chime in with it.
The consequence of this is that I don't think it's temporary. Even as the devices become old hat, the content will keep coming. The rate at which new, hot memes appear is startling.
If the conclusion reached by the aforementioned study is true, our addiction to these devices will not wane as we acclimate to them. We will need to accept that overuse is a problem. Some people will struggle with it, just like some people struggle with other addictions.
I think there is nothing special about this period - the problem of being present is not new and I think it might be useful to remind us of 'greatest hits' on this topic. My personal favourite is "To Have or to Be?" by Erich Fromm.
I'd like to think so. I go through phases, where NOT having my face in electronics feels new (and good) - doing things with my hands, like painting a room or putting in a sink faucet. (And I used to have extreme aversions to handy-man type work.)
I think maybe only two or so years ago BlackBerry had over 17,000 employees so in total we're talking about more than half of the company being cut in the space of a few years.
Yup, in 2011 they has around 19,000 employees when they had their first major layoff. Kind of sad to see a once iconic Canadian company go downhill so fast these past couple year.
I'm not joking here, the only people I've seen use it are foreign exchange students, and I go to a university.
I keep hearing how it's big, but then I don't see any real world use over here.
I don't think that's bad news. But the markets disagreed and the price took a hit. It's been awesome to see the new management's discipline, should have cut earlier but they got the major planks laid out, new os, android run time, backend services, browser. Just refinements left. Employee count to revenue is getting good. 6 devices a year. Simple. And the new phone has the paratek antenna, this is going to be close.
No fiscal discipline, and execution. Battery life on the new 5" phone is a couple days. Maybe the tunable radio helps. App gap is closing, unity ports, android, bloomberg is now on it. Maps suck. I don't know if they'll make it, aka survive, it is going to be close.
Edit,I don't know if the app gap is closing. But probably not.
The capitalist acts of desperation to increase company profit... First motivate the employees to write the İOS and Android app, they will be working their asses off, hoping the company will survive. Then fire them. Voila!
I wonder if the biggest reason why things like this keep happening is because we're all on a state of "high alert" in the tech community. Hear me out.
Right now in the tech world we've got ourselves in a big damn tizzy over anything even slightly sexual in nature.
By contrast, almost every single other medium we encounter on a day to day basis (TV, movies, magazines) is HIGHLY sexualised and makes absolutely no apologies for it. I've seen TV ads on primetime more offensive than some of these presentations.
I wonder if we're just going to keep running in to this issue again and again in the tech world simply because our standards are so out of whack with what the average person deems appropriate?
First of all, not everything that's ok in an entertainment medium (TV, movies) is ok in a professional setting. I don't think presentations like these would have been appropriate at a conference of lawyers, doctors, artists, or biologists, either.
That said I think this also has to do with the extreme gender imbalance. Tech conferences are very male-dominated. I think the first photo here really gets this across, of the restroom line at another conference in SF:
Imagine that you're a woman and you're walking to the restroom, past a line of 40 or 50 men. And now, imagine they've all just seen a "joke" presentation about staring at women's breasts. You might feel like a bit of a target, don't you think? It could be pretty uncomfortable.
Whereas, if we had a gender-balanced industry, and if we had, say, 47 men in the men's restroom line and 43 women in the women's restroom line, a presentation like the ones we're discussing would still be offensive and inappropriate, and still really not ok, but it might at least feel less personally threatening.
I think the difference here though is conferences like this are intentionally positioned at being more casual and less formal/professional. I doubt lawyers even have similarly casual conferences of this nature. In the tech world, we've intentionally positioned our conferences to be this way. I honestly think therefore that people will be more likely to bring their normal set of standards to bear in situations like this.
Now, I have a question for you. Imagine that you're a woman and you're walking to the restroom, past a line of 40 or 50 men. And now imagine those men have any time recently walked past a magazine store where upon they saw hundreds of magazines depicting women naked (ie. every single magazine store anywhere).
Or imagine those men are discussing the latest episode of Boston Legal, a typical TV show depicting a professional setting (legal firm) which contains highly sexualised themes (like, again, pretty much every show on TV today).
I'm not saying this is a good thing. I'm simply making the point that the standards people seem to be applying in the tech world seem to me to be completely out of whack with what society in general deems appropriate.
In case anyone is wondering, what motivated me to submit this was simply the fact that while I've known about this section forever, a quick poll of people I know who visit HN revealed that it wasn't common knowledge.
I have no idea why this and other sections (https://news.ycombinator.com/lists) aren't linked from the main page in a prominent visible manner - especially /best which is great for people like me who check in every few days.
Also, I have a simple site that tries to take a snapshot of the HN front page every hour so that I can catch up if I'm away for a few days: http://hackerslide.com/
Neat - I completely forgot about this. If anyone's interested in these different views on top of HN I created http://yahnr.com/ a while ago that just shows the top stories by vote from the past 24 hours, updated every 15 minutes.
I mostly did it as a way to generate a "pseudo-static" site that is entirely hosted on S3 with a job that just dumps JSON files to it every 15 mins.
What really annoys me about Dark Souls is the shitty PC port. They're still selling tons of copies of the game for PC because of all the silly hype around it, and yet the game is virtually unplayable - even with all the mouse fixes, mods, etc. Why is it acceptable for game developers to completely abandon their customer base and continue to sell a broken product?
I picked up the game during a Steam sale, spent a good few hours trying to make it playable with a variety of mods, fixes, etc. and then just gave up completely. And for those few hours I did play it, nothing about it stood out to me as being incredible or ingenious.
I bought a controller especially for that game and never looked back. This being said, I completed the game right up to just before the final boss fight on kb + mouse... but with the controller, the game is really incredible.
The port is shitty without the third-party fixes, but they also specifically said "we're not PC people, this will be a shitty port". They didn't launch the PC version with a lot of fanfare - and their customer base is on the consoles, not the PCs.
One of the weird things about the port is that the mouse movement is locked - it doesn't matter how quickly you move your mouse or how far, only how long you move it for. You move a set amount given a set length of time. Took me a while to figure it out.
I love Dark Souls, and constantly recommend it to friends.
And if they say 'Yeah, I picked that up on Steam!' I get really sad.
It feels like a game that is pretty exquisitely tuned, and that tuning is towards playing on a console with a controller. I'd even go so far as to say on a PS3 and a really nice TV.
Like how some people can't stand playing an FPS on consoles, only in reverse.
DS plays just fine with a controller on PC, and as an added bonus, with the graphics fix you get the high res graphics - something that was already there but the consoles never got to see.
The consensus seems to be that the game is hardly playable without a controller (by the way, steam has a big warning about that on the game's page in the store).
Some people make do with the mousefix mod (the default mouse targeting behaviour is beyond silly). It's quite a bad port indeed, but it's a good game so I guess it's better than nothing...
If you do a lot of gaming on PC buying a controller can be a pretty good investment anyway, it makes sense for a lot of games.
Played the whole game with just the keyboard. It is perfectly doable - just requires a little bit of time to get used to. Since then it's my favourite game of the last 5 years, a real gem... what I didn't like was the lack of proper information on the screen what buttons do what ( in the inventory and so on ).
I don't know why people expect to be able to play this with a keyboard. It's designed for a certain input paradigm. Play it with the same or face the impedance mismatch. Nobody complains that wii bowling is unplayable with a GameCube controller.
Games sold on PC usually work fine with kb/mouse, and even shitty console ports are bearable. DS's conversion was particularly bad - and it's not like it's an unusual genre with a new movement paradigm.
I'm going to say first of all that I am a major fan of Dark Souls. So I'm obviously going to be biased here.
Was the PC port rushed? Yes, there's no doubt about it. Is it a broken product, though? No, not at all, because the simple fact is that it was never intended to be played using a keyboard and mouse. The developers, probably at the behest of the publisher, didn't really make that clear for the PC version, and that's a shame, but this game was designed from the ground up for a gamepad to a similar extent that Starcraft is designed for a keyboard and mouse. I think if this was communicated more clearly people would have been less caught off guard by the atrocious keyboard and mouse support in the vanilla PC port.
You need to pick up a gamepad, preferably an Xbox 360 one, to play Dark Souls on the PC the way it was meant to be played.
> And for those few hours I did play it, nothing about it stood out to me as being incredible or ingenious.
Of course, there is no way you can expect to appreciate the game itself if you're struggling with the controls.
FROM Software didnt intend to port Dark Souls originally, and when they did it after demand from the playerbase it was their first port. Lets hope they learnt something from it.
And making the port actually playable takes three libs, thats not /that/ much:
DSfix for a better screen resolution and general candy
DSMfix for better mouse controls
DSCfix to instantly play with Windows-Live-Friends
It's almost entirely analogous in my mind to the idea that because there are books that perhaps feature words like "sex" and "miniskirts" that this is offensive, the entire author community is broken, and this is why women don't read books! GUYS GUYS, we absolutely need to start censoring what people can write about! FYI, I think we should all base our moral code on the American christian values...just sayin'!
Here's an idea - women aren't all delicate flowers you need to white-knight on the internet. They can handle seeing words like "bj" and "shag".