A Book about Qt5 - <AUTHOR> https://qmlbook.github.io/ <comment><USER2> I have been thinking about creating a desktop app for a while now. Problem is I can't decide which framework to use. Ideally I would like to use Common Lisp, but McCLIM looks like it's from the eighties, there's also qtools and CommonQT that make it possible to use Qt in Common Lisp, but somehow I'm afraid to develop myself into corner with these tools. Could also use clojure and "seesaw", but again -- it's like I'm handicapping myself here. I could use Racket and it's GUI library, but Racket is marketed as a language for creating languages, so I'll skip that. I guess I still need to use Java 8 with JavaFX. I wish there was a lisp dialect just for developing desktop applications.

<comment><USER3> Yeah, it's a real shame. From what I see the best Common Lisp compilers and libraries are proprietary and seem to be stuck a in 90's vendor (think Borland) mindset.

They're probably serving their existing customers well, since they're still around, but I doubt they're getting many new customers (or mass adoption) with these prices: [http://www.lispworks.com/buy/prices-2c.html](http://www.lispworks.com/buy/prices-2c.html), [https://franz.com/products/packages/](https://franz.com/products/packages/).

<comment><USER4> Probably they wouldn't get 'mass adoption' with lower prices either. Devtools is a niche market and for an independent company it is difficult.

See for example the price for VA Smalltalk...: $6995 for a new developer license.

[https://www.instantiations.com/products/purchase.html](https://www.instantiations.com/products/purchase.html)

Or VisualWorks, which charges based on either end users, number of CPUs, or a royalty basis.

It's a special niche market and in the Lisp space there are unfortunately no companies left of those which once sold actively maintained mid-priced Lisp systems with actual GUI Libs/IDEs (Dead/sold/abandoned/unmaintained: Procyon CL, Expertelligence ExperLisp, Corman CL, Digitool's MCL, Golden Common Lisp from Gold Hill, ...).

The remaining ones are two of the higher-priced vendors: Allegro CL and LispWorks. There were attempts to offer commercial CL systems - but none with emphasis on GUI (example Scieneer CL).

</comment></comment></comment><comment><USER5> I still remember the amount of pain I went with trying to use Qt5 on python, the compile errors, the compile times, the differences between what QtDesigner showed and the actual output, made me appreciate CSS and SASS a lot more.

<comment><USER6> Same here. I designed and built the first version of Aether with Qt5 via Python. It was a miserable experience where the only way to solve certain things were to insert non-meaningful text into certain magic Python fields which would go and compile in C++. Plus a few hundred iterations of getting the magic incantations to work in a consistent manner.

For the second version — I've moved to Electron for UI and Go binaries for actual heavy lifting. At least that one is a known pain you can Google for.

<comment><USER7> Indeed lack of a good (Tkinter just doesn't offer all the necessary widgets, looks and feels clumsy) modern pythonic GUI toolkit seems the biggest problem of Python to me.

Nevertheless I'm surprised to read you had to compile anything (if you don't mean using pyuic5 to generate Python classes from QtDesigner XML files) and deal with C++ while using Qt5 with Python.

<comment><USER8> They are now investing into Python as official supported language.

[https://www.qt.io/qt-for-python](https://www.qt.io/qt-for-python)

<comment><USER9> Well, it was about time. Pyside is a quite old project that for a while almost seemed to have fallen into oblivion. Glad to see that they are finally using it as official binding tool.

</comment></comment></comment></comment></comment><comment><USER10> This page mentions using Python.

I also went to mention that you can now use .NET/C# with QML as well.

[https://github.com/qmlnet/qmlnet](https://github.com/qmlnet/qmlnet)

PS: I'm the author.

<comment><USER11> Hi author!

When I used Qt4 years ago, I ran into a lot of issues regarding segfaults and generally issues with the underlying C++ objects. Admittedly this was largely my fault, but I did find that I had to worry about the underlying implementation a lot and not think idomatically in Python as much.

Have things improved?

<comment><USER12> The specifics get a bit annoying and pedantic. I'm guessing you were dealing with Qt4, PyQt, and Python2? PyQt was a separate thing written by Riverbank Computing (sip was the binding interface). The bummers were it wasn't open source and had separate licensing. In 2009, the Qt people (Nokia at the time) released PySide. Shiboken is the new binding interface. It was mostly compatible with PyQt, open source, better license, and was more idiomatic with Python (Python unicode strings instead of QString, more decorators on functions instead of having to call specific functions in a specific way).

Qt5 was released in 2012. A lot of the user-facing focus was on QML. QtWidgets (the only part I'm familiar with) are now considered "feature complete." That means they're not deprecated, but not getting any new development. PySide2 is PySide with Qt5 support. That took awhile (especially to get Python2 support) and PySide2 was later branded "Qt for Python" even though the imports are still "pyside2." During this time many people transitioned to Python3.

Sorry to throw out so many things. A lot has changed, not all of it might be relevant to you, but I figured I'd mention them so you have a reference point if you want to jump back in or look more into what has changed.

Now to actually address your question. Pyside2 is a pretty big step towards making Qt more idiomatic to Python. I can't speak definitively on the rest of the transitions, but I don't think much has changed. Maybe QML and Python3 are more idiomatic?

After using them for a decade, I feel like idiomatic Python just doesn't have the constructs needed for an event driven gui so it has to lean on C++ and other things Qt built. Or Qt integration was done so long ago, it wasn't built around newer Python things like asyncio. I also can't speak too much to Python3 since my day job still uses Python2/PySide2/Qt5, but I've been looking at the new Python3 packages for years. Unfortunately, I feel like a lot of the async stuff added to Python isn't as terse and elegant as seeing something written in C ported to Python. Maybe I need to recalibrate what I think of as "Pythonic" when I get to use Python3 day-to-day?

As an anecdote of Python lacking necessary constructs, I've stumbled on co- workers using parts of QtCore outside of any GUI because it was the best library they had handy. I wish I could remember some of the use-cases, though.

<comment><USER13> PyQt has always been open-source - it's dual-licensed under GPL 2 and commercial.

What you meant to write probably was "PyQt is not free to use in closed-source applications".

</comment></comment></comment></comment><comment><USER14> For folks who are new to Qt5 and are wondering how an app looks in production, we have a screenshot at [https://www.sostronk.com/app](https://www.sostronk.com/app)

We released SoStronk's desktop app using Qt5 in 2014 and its going great today as well. Having had ~5 years development experience with this, I'll be happy to answer any questions :)

<comment><USER15> That looks great, but very different to what I've seen from playing around a bit with Qt.

Are you using some open source theme or components there, or is it very custom built? I felt that Qt Quick Controls 2 felt far too mobile focused when I tried it out, and looked/felt very out of place in a desktop application, but I guess if you're customizing it heavily then that's less of an issue.

I notice you're only providing a Windows download despite Qt being cross platform. Are there any blockers or issues in building the same app for Mac/Linux, or is that just not something you've looked at. I guess the latter since it's for a game, but just interested since I've seen a lot of comments in the past about difficulties making Qt apps run consistently across different platforms.

Are you using QML and JavaScript for all of the application code, or just using that for the UI and handling the main logic from C++ or other language bindings?

Any thoughts on the Qt/QML approach compared to Electron?

<comment><USER14> The controls themselves are standard Qt Quick Controls 2 items. We didn't need to invent anything new. However, we do have custom styling for each control (buttons, checkboxes etc). If you want a native desktop look'n'feel then you should use QtWidgets instead. In our case it was an explicit requirement to have a custom theme from our design team.

We have internal builds on Mac/Linux for our own use but its not useful to release it to our users as our Anticheat software is Windows-only. In other words, we can release a package for Mac/Linux for the Qt app itself, but not the Anticheat (without which players cannot join the game servers). For the internal builds, we generate .dmg using macdeployqt and .deb for Ubuntu.

QML and JS are used mostly for the UI interaction, all heavy lifting (populating models, user information, lobby statemachine etc) is done in C++.

As for Electron, I haven't personally used it for development so I cannot compare the development differences. There are obviously more libraries available for the JS/HTML world* but on the flip side using Qt/C++ has made it very easy to keep the app lightweight with just a ~1.5man dev team. Players must keep the app open alongwith the game so we need to be very conservative about resource consumption.

*But then, Qt adds support for some of them. The most recent example being QtLottie.

Engineer hat off, I wish that more popular desktop apps were made using dedicated tooling (Qt, .NET etc) instead of cramming a UI inside a browser engine just because its "easier".

</comment></comment></comment><comment><USER16> QML is fantastic. I use it for a commercial application of mine. Main difficulty is finding someone to implement designs but I can do that myself if push comes to shove as I don't need to do a full redesign every 6 months.

</comment><comment><USER17> I know nothing about Qt beyond the most basic description but I'm interested in exploring it as an alternative to Electron. I see lots of debate in the comments here but limited context to help me understand what is being debated. Is this book for me? What background should I, a total beginner, be aware of before I dive in?

<comment><USER18> Qt is a _very comprehensive_ system for apps developed mostly in C++. QML which is like a declarative Javascript, can be used to do quite a lot, but you'll almost certainly need to do some C++ customization in addition to the initial basic 'main app' process which requires C++ as well.

Many of their customers use it for display/kiosk things (think 'in car display') so it has a lot of hyper-specific attributes which can make it seem a little difficult.

The build process is ultimately C++ based (ie make, with their own layer called 'qmake') and so you're going to have to be familiar with that.

In our experience it's quite slow moving compared to JS/CSS/HTML obviously, and performance gains are very situationally dependant.

<comment><USER17> Thank you! That's helpful. Since you're comparing it to JS/CSS/HTML, does this mean you moved from that to Qt? If so, do you think it was a worthwhile move?

When you say many of _their_ customers, who is they? Qt or the people responsible for QML?

<comment><USER18> I've used both on projects. HTML5 is comparable really when used in combination with Electron for example, i.e. to make an installable app. Surely you're aware of the limitations and challenges of HTML5, i.e. you can move quickly, but it's full of quirks. Electron is a little heavy.

Qt I would use if performance was a concern, i.e. there were imaging algorithms, or if the hardware platform were non-standard.

Yes, Qt's customers are auto-companies etc..

Qt is complex and it's a kind of a big step, and it's in C++ which is always a lot slower to move in, however it is powerful, there's really no other comparable.

<comment><USER17> Perfect, thank you. More and more, Qt sounds like the right fit for the product I work on.

<comment><USER18> Adding this now in case you read it: try not to underestimate how different and challenging the world of C++ and their extensive libraries can be. Literally they use QString, QVector i.e. their own, custom building blocks due to the crazy fragmented nature of the C++ world. The development approach is totally different and the kinds of devs you have to hire are totally different. They need to be much stronger, at the same time, focused on actually creating outputs and getting stuff done because you can easily get lost in C++/Qt. Oddly, most people who have experience in HTML5 are pretty close to the UI/design/user aspects to begin with, which is a different culture than most from the C++ world. And as I say the performance issues are totally situational.

For any kind of regular business app or whatever, I'd go Electron, at least to start. Only if I was building video editing software, or a music DAW or something, then possibly QT.

<comment><USER17> This is great advice and I really appreciate it.

I work on a piece of fitness equipment. At the moment, our entire UI is built with TypeScript + React and it's been great: predictable, flexible, easy, and sooo fast to build and deploy. When we were still figuring out how to define our core product, this was crucial (especially the development speed) because I was working as a solo developer, responsible for quite a few environments, apps, aspects of the product, etc,... Now that things are more well-defined and we have actual customers, I'm thinking less about how many deploys I can do in a week and more about performance, stability, and the experience of using the product. As long as we're stuck in the browser, I worry about some of the compromises we'll have to make in all of those areas. We already have some C++ in the stack, so it wouldn't be _completely_ alien, though I'm sure it would still be _mostly_ alien.

All that said, this is still a long way off. I can still go a long way with what we've got and I have far too many concerns that matter more to the product than this. I'm really just starting to think through options so I'm well-informed when the day comes that this does matter enough to actually start planning a change.

Again, I really appreciate the advice!

<comment><USER18> Sounds cool. If you have more questions just ping me tadhman at gmail dot com , happy to help.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> Despite the focus on QML, the Widgets are very easy to work with -- mature, well thought out, cross-platform. I highly recommend PyQt for desktop application development.

</comment><comment><USER20> Discussed in 2016: [https://news.ycombinator.com/item?id=10940484](https://news.ycombinator.com/item?id=10940484)

</comment><comment><USER21> I don't know Qt, but I have a cursory understanding of the DOM, to the point that I can make fully featured "SPA" applications from scratch. Most of my background has been in systems programming. Would learning QT enable me to make applications faster? I have only been exposed to UI programming and through React via Clojurescript and ReasonML and Angular 6/AngularJS

<comment><USER22> From my (admittedly limited) experience with Qt, it's an extremely powerful framework with a somewhat-steep learning curve. Dead-simple apps are dead- simple, but there's a lot of Qt-specific stuff (I.e. QML, control paradigm, extensive libraries, etc.) that you need to learn in order to get the full value out of it. That said, it's still a great cross-platform option, and the fact that it has bindings in most popular languages and is extremely performant (if you write it properly....) means that it's probably worthwhile if you need to make a desktop application.

</comment></comment><comment><USER23> I really like QML but the licensing is kinda tough for hobbyists if you wanna do stuff outside of their opensource license. They used to have a cheaper license

</comment><comment><USER24> Maybe I should read the book, but somebody probably knows: Is there a set a default widgets when using QML?

<comment><USER25> Yes - QtQuick Controls 2. It is discussed in the book at [https://qmlbook.github.io/ch06-controls/controls.html](https://qmlbook.github.io/ch06-controls/controls.html) and has official documentation at [https://doc.qt.io/qt-5/qtquickcontrols- index.html](https://doc.qt.io/qt-5/qtquickcontrols-index.html)

</comment></comment><comment><USER26> I'm debating between Pyside2 vs Electron these days, the latter will need some memory for sure, but I don't need learn the QT apis at least

</comment><comment><USER27> You mean QML? It's weird to see all of the C++ API reduced to a chapter. I've used Qt for years and QWidgets from C++ is all I've used.

<comment><USER28> QWidgets are not under active development, and the future is QML. QWidgets will likely only receive maintenance fixes going forward. Time to join the future!

<comment><USER29> According to the 2019 roadmap, QWidgets is very much not dead and will get new widgets this year: [https://blog.qt.io/blog/2019/02/22/qt- roadmap-2019/](https://blog.qt.io/blog/2019/02/22/qt-roadmap-2019/)

My personal opinion of QML is also contradictional: QML on the desktop to me just feels like a glorified Electron, resizing windows is choppy, controls feel slightly "off", the "single page" approach just feels like it misses the platform's defining features (dialogs and multiple windows). Best example is KDE Discover. But I'd like to be proven wrong, I'd love to hear of QML desktop software that is genuinely high quality, but I haven't heard of any.

<comment><USER12> Maybe they've done an about face? I was at a Qt panel a few years ago and they described QtWidgets as "feature complete" (i.e. not deprecated, but no longer developed). I'm not sure they knew their audience very well. This was a computer graphics conference, which has a lot of Python2 deeply integrated to this day (Python3 is a 2020 goal!). Most of the Qt written is simple windows where people type in values and move sliders. They seemed very surprised when nobody cared or had even tried QML.

I gather QML was a push for mobile (which is in line with your criticisms) where QtWidgets wouldn't work at all. It happens to coincide with Electron bringing the mobile UI and web platform back to the desktop.

Funny thing, a lot of the 3d apps themselves (Nuke, Maya, Houdini) have very custom UIs and have all ported to Qt. But this transitioned happened just before Qt5 so I'm pretty sure it's all heavily modified QtWidgets where QML might have been simpler to implement. However, any performance issues or drawing glitches might have been a dealbreaker. That's so important that these companies actually grouped together and forked Qt 5.6.1[1] with their own backported bug fixes and critical changes. Thankfully they've been working with The Qt Company to integrate them into mainline.

[1] [https://github.com/autodesk-forks/qtbase/tree/adsk- contrib/v...](https://github.com/autodesk-forks/qtbase/tree/adsk- contrib/vfx/5.6.1)

<comment><USER13> _> a push for mobile [...] where QtWidgets wouldn't work at all_

Er, they actually worked fine on Maemo/Meego. I think even Android was supported at some point. But it has never been "cool", and Nokia were desperate for getting cool.

QML was an attempt at doing what Electron has done, but starting _from the other end_ (i.e. desktop -> web, rather than the other way around). It was aimed squarely at "cool web people" trying to build desktop and mobile apps. I believe it was also supposed to be married with some integrated cloud service (where rendering a QML-based interface in-browser was obviously going to be much easier than reimplementing QtWidgets), but I had no interest in that sort of thing at the time, and I don't know the current situation.

<comment><USER30> > Er, they actually worked fine on Maemo/Meego.

Maemo was basically a full Linux though. It was closer to desktop squeezed into a mobile screen than a mobile platform, so lots of things could be compiled and "just work".

<comment><USER13> At the time, Nokia had even ported Qt to Symbian, which is a much more limited platform than iOs or Android. I don't think there is any real impediment to using QtWidgets on mobile platforms.

Edit: to clarify, I mean the original Qt C++ toolkit, not the Python bindings (pyqt/pyside); the bindings only ever worked on Maemo, if i remember correctly.

<comment><USER8> Kind of.

First they had to create PIPS, a POSIX environment for Symbian, because Symbian wasn't POSIX and the native language was a C++ dialect known as just Symbian C++.

Secondly, the Qt based apps weren't pure Qt, you needed to have a couple of _#ifdef_ s sprinkled around, calling Symbian APIs directly, even for a plain hello world.</comment></comment></comment></comment></comment></comment></comment></comment>


Wokeademia - <AUTHOR> https://johnhcochrane.blogspot.com/2020/01/wokeademia.html <comment><USER2> Scary stuff. Glad I'm not in academia, especially at UC.

What's really ironic is that, by making "commitment to diversity" the standard, they could (at least in principle) hire nothing but straight white males, if they all were ideologically committed to diversity.</comment>


Google is preparing to launch a web-based storage service called "Google Drive," - <AUTHOR> http://www.businessinsider.com/google-drive-2011-9?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+typepad%2Falleyinsider%2Fsilicon_alley_insider+%28Silicon+Alley+Insider%29

<comment><USER2> I really feel for all of the smaller file sharing vendors right now. I remember what I felt like reading about the so-called GDrive back in 2009 when I was experimenting with building my own file sharing service.

Mind you, the market for file sharing is already very competitive. It's possible that others might be able to retain their edge by staying small and focusing on the things that have attracted existing users (or by pivoting appropriately) but I have to wonder how they'll remain profitable when pitted against Google's massive delivery platform.

</comment><comment><USER3> I'm a bit hesitant to having one company have access to so much of my info. I started slowly moving away from Google products.

</comment><comment><USER4> Really an interesting topic and news. Google Docs is little bit confuisng and difficult. Let us hope this Google Drive is simple. As I could understsnd the drag and drop facility will be more easier than the conventional one.

</comment><comment><USER5> I remember seeing this in the Dropbox YC application as a possible risk (this is online somewhere, cannot remember the link now). It's interesting that it took Google this long to offer this, seems like a no brainer.

</comment><comment><USER6> Dropbox is so simple and affordable, why use anything else?

Besides, Google is creeping me out with the "targeted ads" thing.

</comment><comment><USER7> What the big deal about it? What about Amazon Cloud, Apple, Dropbox? They come late.</comment>


Create & publish web page in a single click. literally. - <AUTHOR> http://pg4.io

<comment><USER2> I tried it. The top "publish" and "preview" buttons didn't show up till I expanded the window.

The editor is decent although if you are using emacs like key bindings cntl-y should "yank" or paste (it doesn't).

I made a simple page with a photo I took of YoYo Ma. [http://static.pg4.io/aram.html](http://static.pg4.io/aram.html)

<comment><AUTHOR> oh, shoot. we should do something about the min-width :( brb. we are using code mirror ([http://codemirror.net/](http://codemirror.net/)) for editor. very very cool open source -- it has vim and emacs key binding we want to incorporate soon!

</comment></comment><comment><AUTHOR> Hi, we wanted to get some feedback on our initial MVP (we tried to keep it simple) and more importantly, which direction we should take with this? We're trying to figure out which features to do next.. thanks for checking out!

</comment><comment><USER3> Unicode filenames allow you to do cool stuff:

[http://static.pg4.io/☹.html](http://static.pg4.io/☹.html)

<comment><AUTHOR> lol :(</comment></comment>


Generating Recommendations at Amazon Scale with Apache Spark and Amazon DSSTNE - <AUTHOR> http://blogs.aws.amazon.com/bigdata/post/TxGEL8IJ0CAXTK/Generating-Recommendations-at-Amazon-Scale-with-Apache-Spark-and-Amazon-DSSTNE <comment><USER2> If you haven't kept up with Spark, and do not have Amazon-level workloads, the built-in machine learning APIs are _extremely_ robust and well-documented ([https://people.apache.org/~pwendell/spark-nightly/spark- mast...](https://people.apache.org/~pwendell/spark-nightly/spark-master- docs/latest/api/python/pyspark.ml.html)), even in the non-Scala languages like Python. There's even a Multilevel Perceptron model creation function, which creates artificial neural networks using the feed-forward/backpropagation everyone loves.

The new Spark DataFrames also make manipulating data almost as easy as with Python Pandas / R dplyr. The new Berkeley eDX course ([https://courses.edx.org/courses/course-v1:BerkeleyX+CS105x+1...](https://courses.edx.org/courses/course-v1:BerkeleyX+CS105x+1T2016/info)) is a very good explainer.

After Spark 2.0.0 is released, it wouldn't surprise me if it really takes off. (as long as setting up a cluster is a bit easier!)

<comment><USER3> > as long as setting up a cluster is a bit easier!

If you're on AWS, it's already quite easy to set up a cluster today, no?

There's EMR of course, and there are tools like spark-ec2 [0] and Flintrock [1].

There are a few more tools listed on Spark Packages that target different cloud providers [2], too.

Disclaimer: I am the primary author of Flintrock and am a contributor to spark-ec2.

[0] [https://github.com/amplab/spark-ec2](https://github.com/amplab/spark-ec2)

[1] [https://github.com/nchammas/flintrock](https://github.com/nchammas/flintrock)

[2] [https://spark-packages.org/?q=tags%3Adeployment](https://spark- packages.org/?q=tags%3Adeployment)

<comment><USER2> Setting up Spark clusters is easy relative to setting up clusters, but not easy enough yet to set up and configure relative to simply downloading a package in R/Python.

<comment><USER3> Well, the absolute easiest way to run Spark is to do it locally (e.g. you can brew install it on a Mac and just go) or to pay for a proprietary service like Databricks, which makes setting up a cluster take a few clicks.

That said, I think `flintrock launch my-cluster` is almost as easy as doing `pip install ...`.

You do need an AWS account and you do need to set your preferences like region and key name in a config file, but I don't see how you can get out of doing even that without subscribing to some managed service like Databricks that abstracts everything away and replaces it with a nice Web UI.

</comment></comment></comment></comment><comment><USER4> We already built what Amazon was looking for: An extensible deep-learning framework that works on distributed CPUs and GPUs heterogeneously, integrating with Spark as an access layer to orchestrate multiple host threads.

[https://github.com/deeplearning4j](https://github.com/deeplearning4j)

DL4J may be the DL library with the most sophisticated Spark integration at this point. The trick is to avoid using Spark as a computation layer, since it doesn't do that well.

We're pushing a CuDNN wrapper tomorrow.

[http://deeplearning4j.org/quickstart](http://deeplearning4j.org/quickstart)

Unlike DSSTNE, Tensorflow or CNTK, our deep learning library is neutral, and not designed with the intention of locking people into to a cloud service.

<comment><USER5> Wow, defensive much? Afraid of a little competition maybe?

Anyway, DSSTNE itself is not in any way locked to any cloud service whatsoever. It is an Apache-licensed library with dependencies on a C++11 compiler, a 7.0 or later CUDA Toolkit and Kepler or better GPU, a C++11-friendly MPI library, netcdf, and libjsoncpp. That's it. Please stop insinuating otherwise.

The article here shows how one could use DSSTNE with Spark for recommendations at scale. Speaking of which, how's your sparse data and model-parallel training support? Because as the author of DSSTNE, the poor support for these features in other frameworks was what forced to us to "roll our own" code in the first place. Everyone else was optimizing for ImageNet-winning CNNs (including NVIDIA). And there's nothing wrong with that, $25M+ companies have been built from that, but it just wasn't the use case here.

Finally, cuSparse is cuSlow for datasets at Amazon. DSSTNE's hand-coded sparse kernels stomp on cuSparse in the same way that Neon's convolution kernels stomp on cuDNN. And there's nothing wrong with that either. CuSparse is a great choice for other sparse data problems, just not Amazon's (and I suspect many other companies) recommendations problems.

</comment></comment><comment><USER6> Their suggestions aren't all that great in my experience. Its either something I looked at/bought before or its something completely arbitrary.</comment>


Google Chrome is Labeled As a Malware by Microsoft Security Essentials - <AUTHOR> http://jussbuzz.com/websites-technology/google-chrome-is-labeled-as-a-malware-by-microsoft-security-essentials

<comment><USER2> So what, Chrome always warns when it downloads PDF</comment>


$600 Chromebooks are a dangerous development for Microsoft - <AUTHOR> https://arstechnica.com/gadgets/2018/09/600-chromebooks-are-a-dangerous-development-for-microsoft/ <comment><USER3> Bought a relatively highend Chromebook for a family member and I have to say, these things are honestly really nice and perfect for the average user. I just wish there was something similar for standalone linux. The same sleek profile and price point as the Acer 14/15 series but runs some generic distro like Ubuntu natively.

I know you can run Crouton but it just doesn't feel the same.

<comment><USER4> Just buy some cheap windows box with roughly the same specs and install linux on it. Unfortunately requires paying the "microsoft tax" but _c 'est la vie_.

Requires a bit of googling to ensure there's no driver issues but this is what I've done for nearly a couple decades now.

</comment></comment><comment><USER5> Let me just say right off the bat that I like Chromebooks and think they're fantastic for education in particular (combined with GSuite).

But that being said, Chromebooks don't scale with better hardware very well. You can spend $250-350 and get 90% of the experience, and a very good experience at that. If you spend three times more you'll get more memory for Chrome and slightly more responsive tabs but hardly blows your socks off.

Microsoft likely aren't shaking in their boots because of a $600-900 Chromebook. If anything Android emulation is the real "killer app" since it massively expands a Chromebook's capabilities, including running Microsoft's own Android-Office apps.

<comment><USER6> Isn't that basically the same on a Windows Laptop or an iPad? Are there any premium features that are hardware bound on any platform?

</comment></comment><comment><USER7> Unlike Google and Apple, Microsoft really doesn't care what you run on their OS or do with their hardware. Though it is not quite 'freedom' in the OSS evangelical sense, I'll still take it any day over the other two, Chrome/Google in particular. YMMV.

</comment><comment><USER8> Shit at this point I'd rather get a used iPad and keyboard if I wanted something like a Chromebook.

Or just a used thinkpad.

But I guess I'm not part of the normal demographic anyway, so....

</comment><comment><USER9> In classic tech journalism fashion, no mention or even apparent knowledge of Microsoft's own efforts in this area: Polaris, Core OS, OneCore, and CShell [1] [2]

[1] [https://www.windowscentral.com/understanding-windows-core- os...](https://www.windowscentral.com/understanding-windows-core-os-and- polaris)

[2] [https://youtu.be/F_bPcctTV_Y](https://youtu.be/F_bPcctTV_Y)

<comment><USER10> all things so small no one has ever heard of them though

<comment><USER9> Windows Core OS is literally the next major OS from Windows (though who knows if they'll just silently upgrade Win10 without a name change or what). Its not small. The point is to create a modularized operating system, built on OneCore, where they can add or remove major features depending on the platform it is deployed to (even features as big as Win32 support).

Andromeda is the codename for their revitalized smartphone effort. Polaris is the codename for their "windows minus the legacy" experience on desktop; no Win32, just UWP, capable of running on significantly less powerful hardware.

<comment><USER10> I agree with you, but it's not because it's big that anyone has ever heard of it (consumers, not Microsoft employees)

</comment></comment></comment></comment><comment><USER11> I don't see it a threat, its entirely different segmentation. Microsoft eats up lower pricepoints through its OEM/ODM partners that it can direct by issuing best practice guidances in fit, finish, features, etc and captures what it likes. It does ultra-premium but occasionally dabbles in lower segments- the thing I'm most curious to see is what it considered in the Surface 3 and other slightly more budget conscious releases.

Google was crap at hardware, are they good now? They're hiring like mad right now for hardware PMs from other orgs, and that'll grab some younger talent, but they need pretty seasoned people to rebuild a whole hardware org. They have good hardware design teams but they're fractured from eng, biz, strat and more.

You can be good at a network of your ODMs but that doesn't mean the product comes out to target. Chromebooks were positioned as this cheap school thing for a bit, but then the pixel kinda overshot this by a lot.. they need clear segmentation and targeting goals.

</comment><comment><USER12> I like the idea of ChromeOS but I don't understand why anyone would want to own a computer that you can't even create a user account on without the manufacturer's permission. I am also unsure, from a privacy prospective, if it is wise to use an OS created by an advertising company.

<comment><USER13> Because after a day of work, most people just want to see funny pictures and check their email and login to a bank account to pay some bills. They're consumers, not producers.

<comment><USER14> > "Because after a day of work, most people just want to see funny pictures > and check their email and login to a bank account to pay some bills. They're > consumers, not producers."

You're simply saying people want affordable technology. In that case, what is Chromebook's advantage over the competition? The market is flooded with cheap hardware, targeting those exact types of consumers.

<comment><USER15> > In that case, what is Chromebook's advantage over the competition?

Chromebooks are not about the price. There are plenty of affordable alternatives. They are about having to do zero maintenance.

</comment></comment></comment></comment><comment><USER16> This development is not surprising. From the beginning, Microsoft's brilliance been in figuring out how pc's could be used in the enterprise. It was only a lucky side-effect that it also became the king of consumer computing.

A consequence of this is that MS has always focused on making their OS and applications useful for businesses, at a great sacrifice in ease of use and security for consumers. Apple jumped in to focus on ease of use and security, but their computers have always been too expensive for mass adoption.

Now Google is going for the mass market with a secure and easy to use OS. Microsoft can't really fight back because to do would mean abandoning the business market. And it understandably doesn't want to do that because that's where the big bucks are. So we should expect to see ChromeOS steadily gaining in popularity, though it is an open question as to how far it will also go in the enterprise.

</comment><comment><USER17> It seems there is a terminal in chromeos. Is there some kind of package manager? I'm just curious is a chromebook is fit for software development, and if g++/clang is running on it.

If not, I would avoid it. My experience with C++ and macbooks has been pretty bad.

</comment><comment> open-source-ux Don't forget that ChromeOS is an operating system (OS) that tracks everything you do. To use the OS to the full requires a Google account, so you aren't even anonymous while you use it. (As a reminder, your Google account = your name, your date of birth, your location, your gender and mobile phone number i.e. some of your most private and personal details.)

We've seen Microsoft criticised, quite rightly, for introducing tracking of users in Windows 10 (euphemistically labelled as telemetry), yet Google gets no criticism. In fact we get the opposite, people rush to Google's defence. The double-standard is hard to understand.

Presumably, if you think it's fine for ChromeOS to record everything you do in the OS, you equally think it's fine for Windows/Mac OS/Ubuntu to record everything you do too (non-anonymously of course).

<comment><USER18> > To use the OS to the full requires a Google account, so you aren't even > anonymous while you use it

What can't you do without a Google account? There's a "browse as guest" option.

<comment><USER19> And win10 has a local account option, no MS account needed to access all the features.

ChromeOS is for people who are not technically inclined and don't care much for privacy. The majority of users I am sure.

</comment></comment></comment><comment><USER20> > For now, Chrome OS's success seems limited and fairly US-centric.

Availability of Chromebooks in Australia is still very spotty (can't get the Pixel easily for example) so the Microsoft hegemony isn't being threatened Down Under!

<comment><USER21> Australia has less than 10% of the US population. We get the scraps if and when our capitalist overlords are feeling generous.

</comment></comment><comment><USER22> High school my niece goes to gives students free Chromebooks to take home and work on. My son went to a high school that made us buy iPads. So there is an academic issue here and the new Chromebooks might eat iPad sales or cause Apple to make cheaper iPads.

Windows laptops are a joke because low end laptops uses slow CPUs and Intel graphics. Mid end laptops for $600 have faster CPUs and Nvidia graphics but suffer preloaded bloat and virus issues a Chromebook can avoid.

I got a 10 year old laptop with Linux Mint on it that runs great. Windows 7 and above run too slow on it.

</comment><comment><USER23> A few years ago I picked up a $300 Chromebook, spent $50 to upgrade the SSD size (swapped the SSD card in it) and now I run GalliumOS on it (native xubuntu but optimized for Chromebooks).

So for $350 you get a 1080p IPS panel laptop that weighs under 3 pounds and has an SD card, headphone jack and other goodies. It easily runs a bunch of Dockerized web apps without being slow.

One of the best portable computing devices I ever spent $ on. I still use it almost every day 2.5 years later.

Details can be found at: [https://nickjanetakis.com/blog/transform-a-toshiba- chromeboo...](https://nickjanetakis.com/blog/transform-a-toshiba-chromebook- cb35-into-a-linux-development-environment-with-galliumos)

<comment><USER24> So for $350 you can buy much better laptop on ebay.

Example: [https://www.ebay.com/itm/HP- PROBOOK-650-G2-I7-6600U-8GB-256G...](https://www.ebay.com/itm/HP- PROBOOK-650-G2-I7-6600U-8GB-256GB-NO- OS/273407193643?epid=6019183665&hash=item3fa856b22b%3Ag%3Aaz0AAOSwxrNbcv6l&LH_BIN=1)

<comment><USER25> This is a listing for a second-hand laptop, if the Chromebook had been bought second-hand too it would have probably cost significantly less than this.

<comment><USER24> This "second-hand laptop" is much more powerful than chromebook and can be found for less money. I just use the same price range.

<comment><USER26> But you don't get the minimalist Chromebook keyboard.

Plus laptop CPU thermal management has a lot of problems. I would prefer a modern and fanless Chromebook to an old laptop where the fans are whirring away the whole time for no evidence of performance gain.

I am hoping that there will soon be an eight generation Pentium inside a high end Chromebook with that Chromebook running linux things like a web server natively. No idea how the IDE is going to work running that way but that is where I would like my dev environment to be going.

You can still get refurbished Chromebooks, I bought a Dell one and I think that come the apocalypse there will be cockroaches and my Dell Chromebook running, if nothing else, as it is that indestructible. Plus charging seems optional. It goes for days.

<comment><USER24> > Plus laptop CPU thermal management has a lot of problems.

The business class machine means no thermal problems and keyboard problems by default - probably many people who use Pentium on Acer just don't know.

</comment></comment></comment></comment></comment></comment><comment><USER27> _For example, new college students that had used Chrome OS at high school and families who wanted the robustness Chrome OS offers are looking for machines that are more attractive, use better materials, and are a bit faster and more powerful. The $600 machines fit that role_

That's really the takeaway here. GSuite has gotten its hooks deep into elementary/secondary education and now that's starting to sweep into the college market.

Families also shop for new laptops around the holidays, and they'll want something that dovetails with the work kids are doing at school. If the choice is an iOS or Chrome device, the choice becomes a lot easier when they're nearly the same price.

<comment><USER28> I am sure a non-trivial reason for this is every Middle School, High School, and College I have ever heard of in my area the emails are g-suite, and they all have unlimited google storage. Almost everyone I know uses Google Docs when it comes to sharing papers, and many it is their primary editor. I see why chomebooks are popular if everything else in your school is g-suite.

<comment><USER27> A lot of schools also have legacy PCs that are _not_ Chromebooks, and GSuite runs on these as well.

</comment></comment></comment><comment><USER29> I recommended my son and father to get a chromebook. They got the $600 Samsung model that flips back and has a touchscreen with stylist. I think these are great devices and do what most people need to do sans annoyances. My parents bug me much less now on how to do this or that and my son can still learn how to program javascript games not needing to crack into the core but that's still a possibility if you put it in dev mode at some point.

</comment><comment><USER30> $100 Pre-2010 laptops running Lubuntu are an even more dangerous threat that more and more people are learning about

<comment><USER31> The first time I tried Lubuntu, was on an old, no-name brand laptop with Windows XP, that a friend gave me. Installed in a few minutes, and was pleasantly surprised how performant and usable it is, considering the limited hardware resources. I mostly just use it as a browser and book reader, but for giving new life to old laptops, I think Lubuntu works great. Not sure how much of a threat to the market it is though.. Hopefully it provides an open-source option for educational purposes and the "next billion" in the developing world.

<comment><USER30> I highly, highly, highly, highly agree!!!! So glad someone else out there likes it. It's like ubuntu with snapiness, of course.

Lubuntu is really like "teaching a man to fish". If you give them instructions on how to install it, then suddenly nobody will ever need a shiny new $1700 macbook to get started with basic programming and content rich web browsing.

Though personally I prefer text :)

</comment></comment></comment><comment><USER32> I'm not sure how this article managed to overlook the Asus C302 Chromebook flip which has been out for well over a year now and sells at the $500 price point. Very happy with mine.

</comment><comment><USER33> I want Chromebooks to dominate the consumer market, to be honest. Hopefully that will push Windows towards dropping bloated consumer-focussed features in lieu of a leaner OS aimed more squarely at the professional market. Currently installing Windows 10 Pro fresh installs an unimaginable quantity of crap. Why is Minecraft on a 'pro' install, and pinned to the Start Menu?

</comment><comment><USER34> I'm pretty new to tech, and young in general, but I'm curious why what's happening between the different browsers regarding working together to identically implement JavaScript, thus allowing tons of modern applications to be universal across machines as long as you can install a modern browser, not happen before with other programming languages? Or did they?

I don't know anything about desktop application development, but for example in college I would use PowerPoint a lot. Was there some specific limitation that made for PowerPoint to be a Windows only thing? Was it that Microsoft just refused to make it for different operating systems? Or was there no point because everyone had windows installed anyway?

I'm kinda just chewing the fat here but in 2018 with iOS, osx, Android, windows, and Ubuntu being the main operating systems of machines, why'd it take the second level of abstraction of Firefox, Chrome, Opera, and Edge working together to make sharing apps across machines a thing? Like, why didn't, I dunno, some cross platform python library (I know nothing about desktop apps sorry) instead be The Universalizer?

<comment><USER35> I think that was basically C, and POSIX. Except Microsoft wasn't particularly interested in it, and they thought they'd be better off if they didn't make their software work for competing OS's.

In a sense, most programs today are really portable. I think in the past, there was a far greater variety of machines, and people used to make programs for them specifically, in assembly, that absolutely wouldn't run on even a different generation of the same familly of machines.

</comment></comment><comment><USER19> Look up how much win7 used to cost and how much you have to pay for win10. Microsoft knows that Google is the competition.

</comment><comment><USER36> There's still no official 17 inch Chromebooks out. Why is Google ignoring people who prefer larger devices. Also ChromeOS is absent from high end desktops and workstations. If Google really want to put the pressure on Microsoft then they need to aim there.

</comment><comment><USER37> One thing that's good about Chromebook is that if I save something, it's in one of two places - Downloads folder or Gdrive. On Windows it could be in Downloads, Desktop, My Docs, some random file, Onedrive, Gdrive, etc etc. I realize this is not a big deal but given so many choices, ultimately files will multiply and spread everywhere.

<comment><USER38> > On Windows it could be in Downloads, Desktop, My Docs

they're all in you're user folder on Windows so wouldn't that be pretty much the same as the root gdrive folder and whatever subfolders you have things organised into?

</comment></comment><comment><USER39> My dream is to get a light weight laptop with just enough power to send/receive input to/from my more powerful desktop where I do Gpu intensive game development on Windows.

Sadly Remote Desktop is lacking in a lot of ways mainly the refresh rate makes it very difficult to resolve the rendered scene I'm working on.

Any suggestions?

<comment><USER40> Steam In-Home Streaming ? It's even got a mobile Steam Link app now if you want to use your phone with a Bluetooth controller.

</comment></comment><comment><USER41> No it is not. You can easily find a $600 or even less equally powerful Windows laptop.

</comment><comment><USER42> Soldered in emmc storage seems kind of unattractive to me. 128GB is enough to get by but it really hurts that you can't spend $100 and have 4x as much later.

Of course you could carry around an external drive but do you want to have to plug in a drive every time you wake up your computer.

</comment><comment><USER43> I'm looking for a good Chromebook/cheap laptop to take notes and do some lightweight programming. Criteria is good display, decent chrome performance (20 tabs open) and decent battery life (8 hours would be nice). Any recommendations?

</comment><comment><USER44> > inexpensive ARM processors rather than more powerful and pricier Intel ones

I want more powerful ARM ones… RK3399 is a great step in the right direction, but I'd love to see a chromebook with, say, the new Kirin

</comment><comment><USER45> This article misses the mark completely by assuming that Microsoft still needs Windows to stay afloat.

This hasn't been true for years.

They have realized that it doesn't matter whether you use Windows, Chrome OS, Android or Linux, or anything else: everything is in the cloud now, so the OS is pretty much irrelevant.

Azure, Office 365 and heck, even Linkedin are doing great:

[https://www.theregister.co.uk/2018/07/19/microsoft_huge_2018...](https://www.theregister.co.uk/2018/07/19/microsoft_huge_2018_q4/)

So I very much doubt that Microsoft is sweating it about Chromebooks.

<comment><USER46> One major differentiator for Azure is its 1st class support for Windows / Microsoft centric tech. Besides that, I find it hard to see why someone would pick them over AWS. So if consumer Windows becomes irrelevant, so does Windows server. If you're no longer needing Windows server, why get SQL server and so on. I think consumer Windows demand fuels demand for Azure and Office 365.

<comment><USER47> For one thing, the Azure portal is more consistent and _so_ much better to work with than the clunky, rather antiquated AWS portal.

Azure has a _huge_ and every-growing service offering, which includes things like Postgres, so it's not like you are bound to Microsoft tech if you use Azure.

I've been working with Azure for a few years now, and am very happy with it - in the main, I've found there support to be excellent too.

IMO the only area AWS really kicks Azure's arse is for compute - you get a lot more VM for your money with AWS. I really wish Azure would do better here.

</comment></comment></comment><comment><USER48> Are they really? Recently I had to choose between a chromebook and a cheap lenovo laptop and I went with the lenovo.32GB just isn't enough space.

</comment><comment><USER49> Do Chromebooks have applications to edit videos? For applications like that don't we need PCs?

</comment><comment><USER50> There is no excuse to use Windows anymore.

Windows' duck taped UI makes absolutely no sense.

On top of that, you get ads, nagware and your activity data is exfiltrated to their servers... and this is on a product that you have to pay for.

I don't mind paying for a product, but Windows does not offer any added value.

</comment><comment><USER51> Wow, 360 Hacker News comments on a Chromebook article

</comment><comment><USER24> $600 chromebooks? REALLY?

It's better invest that money in new/used laptop.

They was competitive only with $200-300 prices.

<comment><USER52> They'll still have the $200 ones... Paying $600 is for people who want to have multiple tabs open at once.

</comment></comment><comment><USER53> I never really understood why MSFT didn't start a clean slate rewrite of Windows about a decade ago. Imagine how much simpler and more reliable it could be, and you could run Windows 7 in an emulation layer if you had older apps you depended on.

Even OS X has the feel that cloud services are kind of bolted on, whereas a new OS written in this era could feel more like ChromeOS in terms of reliability but still include features for advanced users like developers and business analytics.

Definitely feels like a missed opportunity, especially with growing discontent among developers with the Mac hardware line.

<comment><USER54> They did, Windows RT

<comment><USER55> I thought RT was just an ARM port, not a rewrite?

<comment><USER56> [https://en.wikipedia.org/wiki/Windows_Runtime](https://en.wikipedia.org/wiki/Windows_Runtime)

<comment><USER55> Close, but not quite. The first sentence on the linked article says:

"'WinRT' redirects here. It is not to be confused with Windows RT."

So "Windows RT" is an ARM port of the Windows 8 OS, while "Windows Runtime" aka "WinRT" is an API for "modern" Windows applications.

To be clear, I was responding to OP's literal "Windows RT" mention in my parent post.

</comment></comment></comment></comment></comment><comment><USER57> No they are not. We are still not there yet. First, $600 is pretty expensive. Most Windows laptops that I see run on less than $500. Second, they don't have the ecosystem yet.

Here are things you do on Windows:

1\. Browse the Internet using Chrome.

2\. Play a relatively demanding Video Game.

3\. Run Office, Word and Excel.

4\. Install your Canon Printer and print a few papers.

5\. Plugin your Nikon Camera.

6\. Run Adobe Photoshop to do some tweaking.

Most people do that on their laptops. We are still far from being 100% cloud. Also ChromeOS is not an improvement over Windows. It is a change of environments. OSX is an improvement. The only deal is that it is prohibitively expensive.

<comment><USER50> Please tell me which of this things you cannot do on Linux right now.

With Gimp you can do a lot of what you can do with Photoshop.

TeX and any math package like R beat Microsoft Office and produce better documents.

WordPerfect was a much better alternative to Microsoft Word, but guess what happened: Microsoft invested on Corel and suddenly they stopped releasing on Linux.

There's a lot of money invested in making Office a monopoly. By supporting Office and spreading its use you are extending that monopoly further into another generation.

<comment><USER58> WordPerfect died for two reasons: the transition to Windows (and WP6 for DOS, which was the worst of both worlds); and its lack of a real office suite integration. Lotus 1-2-3, the other application that owned to office, lost out for much the same reason. SmartSuite was a whole lot closer to an integrated solution than bundling WP with Quattro Pro and friends was, but Ami Pro was a less-than-competent word processor for business purposes.

TeX/LaTeX may make some pretty documents, but the learning curve is pretty heavy-duty, and compiling a typeset document isn't exactly dash-it-off quick for normal typist/secretary activities. It doesn't matter much what you can do with technical or book-length documents; that's not what the world runs on.

And Gimp ain't Photoshop. It's not even a close thing.

<comment><USER50> Gimp may not have full feature parity with Photoshop but unless you are a professional graphics designer or creative worker, Gimp will provide most of the features you need.

<comment><USER59> Not at all. Its image processing algorithms are often subpar, missing the final touch that is present in Adobe products, admitting it as much as I hate their subscription model.

</comment></comment></comment></comment></comment><comment><USER60> Dependence on Windows is the most dangerous development for Microsoft. An 8GB RAM Windows Surface Go is less performant than an iPad with 2GB of RAM for consumers.

For the server, I recently had to write a process that takes messages from a queue in AWS and store it to a database. It ran well as a .Net Core based lambda running on a 256MB RAM Linux VM.

I did the same with a .Net Framesork app that inherited and the smallest EC2 instance we could use was one with 4GB RAM. It was barely usable. We had to upgrade to 8GB. Microsoft has been successful because of Moore's law hid the increasing bloat of Windows. But once smartphones and low resource required operating systems became popular, they can't compete.

<comment><USER61> I _think_ this is entirely due to backwards compatibility.

<comment><USER62> _I think this is entirely due to backwards compatibility._

That's the current conventional wisdom. But it's more like an excuse.

Windows got bloated because Microsoft relied(s) on cheap masses of mediocre programmers, backed by equally mediocre managers. A pattern that Windows application developers copied.

Yes, Microsoft has some really talented people. I knew a good number of them from the Bing and Xbox group when I lived in Bellevue. They would talk about amazing things. But then they would always follow those tales with internal Microsoft horror stories.

<comment><USER63> This isn't true at all. The ENTIRE industry had to re-invent itself MANY times - and MANY companies failed and have long since shutdown. Microsoft on the other hand has survived - and not only maintained backwards compatibility but embraced new technologies - and is doing so at a breakneck pace today.

Microsoft research is a top notch research company. Microsoft is also a large, if not the largest, contributor to Linux & Open source.

Horror stories aren't unique to Microsoft... The industry of the 80s/90s and early 2000s was something i'd never want to go back to - but its also something i suffered through and that suffering didn't matter what OS you ran. If you chose Irix it sucked paying 600 bucks for MEDIA to update your OS, if you ran HPUX it sucked having to buy a support contract to update your OS, if you ran Solaris, you were proud of solaris - but it wasn't until sun embraced open source that it really took off because we didn't have to buy a compiler that cost hundreds of dollars if not thousands to license.

Meanwhile, Windows has TurboC, TurboPascal and tons of stuff - and open source gnu started taking off and linux came around and the world started getting better for everyone- opportunity opened up - we crossed the chasim from 8 bit to 16 bit to 32 bit and 64bit and Windows has maintained a level of compatibility second to none to support all that legacy.

They're working hard to compete - Windows "S" mode is windows without the ability to stall win32 - its "Store mode" \- it could go a LONG way into making it "suck less" from legacy cruft but by and large the market and developers are refusing to support it - which is odd considering they NEED to support the store model for official chromebooks, android apps or ios marketplaces.

Damned if you do, damned if you don't.

<comment><USER64> > Microsoft is also a large, if not the largest, contributor to Linux & Open > source.

I always hear things like this. What exactly are they contributing though?

> Windows has maintained a level of compatibility second to none to support > all that legacy

As far as I can tell, if you want to run a legacy Windows app, you're more likely to be successful running it in Wine on Linux.

<comment><USER63> >I always hear things like this. What exactly are they contributing though?

Their employees contribute tons of code to the kernel and they're a premium partner in the Linux foundation paying Linus's salary. They contribute to the kernel, hadoop, mesos, k8s, they contribute to gcc, heck they let you run linux on windows now with Linux subsystem and have official partnerships with redhat, suse, ubuntu. They also open sourced C#, they contribute to jenkins, so much mroe.

>As far as I can tell, if you want to run a legacy Windows app, you're more likely to be successful running it in Wine on Linux.

no sane person would do that. Just run it in compatibility mode on Windows 10.

<comment><USER64> > Their employees contribute tons of code to the kernel and they're a premium > partner in the Linux foundation paying Linus's salary....

Linus wasn't starving before MS became a platinum member of the Linux Foundation.

> They contribute to the kernel, hadoop, mesos, k8s, they contribute to gcc, > heck they let you run linux on windows now with Linux subsystem...

Right, so as far as I can tell most of their contribution are likely to be things to make their linux subsystem work better. Which has very little effect on me.

> >As far as I can tell, if you want to run a legacy Windows app, you're more > likely to be successful running it in Wine on Linux.

> no sane person would do that. Just run it in compatibility mode on Windows > 10.

Mentioning sanity and running Windows 10 in the same breath?

<comment><USER63> Where do people like you come from? 20-year grudges, personal biases and so much hate/spite for something you know literally nothing about and would never use... Why?

Chromebooks are great. Windows 10 is great. My Macbook is great. We have TONS Of great computing devices and choices today. Use an iphone, use an android, use a stick phone, i don't give a crap.

What i do get appalled at is all this hate, misinformation and projection of personal biases and preference as "matter of fact".. its bull crap and ya know it.

<comment><USER64> What do I literally know nothing about? I spent way too many years using Windows (not knowing any better), so I know more about it than I care to. I'm not sure how mentioning Wine's capabilities is hate in any case. But I'm happy to learn about whatever I may be mistaken about.

Edit: Ah, I realise what the 'hate' remark is about, my comment about Windows 10 and sanity. Here's my Windows 10 story - I was installing it on a 'game box' (since repurposed as a Linux workstation) off of a usb stick. In the middle of the installation, it complained about some sort of missing drivers (in a very opaque fashion). I wrote down the information and went off to the Internet for help, figuring, it's easy to help for Linux issues, so Windows issues like _must_ be even easier, given its wide-use. But nothing I found made any difference. Until I came across a suggestion somewhere to unplug the usb at that point in time and plug it into another usb slot. I thought "that's silly and will never work". Of course, that was the solution. Note: it didn't matter which usb port it was plugged into initially, so it wasn't a 'usb3 drivers missing' issue or anything like that. For whatever reason, at that point in the installation, unplugging the usb and replugging it in made Windows 10 'see' the drivers. I spent _way_ too many hours on such a silly (and still to me opaque) problem. Thus I don't really associate Windows 10 with sanity. (And I won't mention my experience with the official Microsoft Store and malware.)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER65> Any Chromebook more than $400 right now is just there to absorb even more disposable income from the market, because they ship with nicer finishes and faster processors, but they are anemic on memory and storage, making them subpar for intense multitasking, or getting certain types of work done. The situations in which they excel can be reliably hit by Chromebooks around a $400 price point, and even cheaper Chromebooks allow one to forego performance for the increased disposability of the machine.

I suspect one reason for $600 devices, other than Google itself trying to reposition Chromebooks as more upmarket, is because $600 Windows laptops are still are a mess of preloaded bullshit put there by the vendor. Microsoft has tried various ways to fix this but it only tends to protect high-end models. And build quality and the nature of hardware compromises at that price point have always been unpleasant, save for a few concentrated efforts like Lenovo's IdeaPad line. In other words, $600 laptops are second only to $200 laptops in making Windows look bad, making them an easy target for an OS that proved that $200 laptops can actually be quite good.

Still, there are few challenges. Chromebooks' filesystem paradigm deemphasises local storage to the point of cumbersome, relying on Google Drive or custom interfaces and implementations built for each app that know how to pull up past work. This is a smart idea when everything works, but makes import, export, and context switching harder, and makes sharing a feature of the product rather than a file-based affair.

On Chromebooks, Chrome's fantastic profile system is deliberately conflated with Chrome OS login sessions, which makes it harder for one user to maintain multiple independent browsing contexts than when using Chrome on other platforms. Power users on Windows can run multiple browsers, or use profile systems in browsers to keep separation, but on Chrome OS, you only get two de facto contexts (the white one and the black one with the cool spy icon), you blast the same cookies everywhere, and half your builtin applications are just hyperlinks to auto-log you into the corresponding Google product in your global white context. Applications like Hangouts (the app, not the extension) are rare, where the entire window inherits your OS login, but keeps your context entirely separate from what you're doing in the browser.

Nonetheless, with Service Workers and graphics APIs and auto-resuming applications and unintrusive updates, and people using Google products anyway, Microsoft should be worried, because they're being challenged for customers in a segment where their OS is least compelling, and was largely used by default.

<comment><USER66> I'm interested in Chromebooks for a different reason, the same reason that brings me to Pixel phones.

I hate software that tracks me, but if I wipe out Android and I install a self compiled AOSP, it's a superb user experience for me.

Will these more upmarket Chromebooks (which have x86 CPUs and acceptable RAM & storage) be OK to run any regular Linux distro?

Right now, Xiaomi laptops are excellent cheap machines to run Linux on (thanks to having just Intel components). Same for Huawei if you are willing to spend a bit more, but on that price a Thinkpad is probably the way to go.

<comment><USER67> > Will these more upmarket Chromebooks (which have x86 CPUs and acceptable RAM > & storage) be OK to run any regular Linux distro?

Yes, with the caveat that full BIOS/UEFI support sometimes lags hardware releases by 6-12 months - out of the box most Chromebooks can only boot ChromeOS. Pretty much all the Chromebook firmware work to support 3rd-party OS' is done by one guy, see his page here: [https://mrchromebox.tech](https://mrchromebox.tech)

I run Arch on a cheap Chromebook for some tasks at work, I've generally been satisfied, and will probably buy another one eventually. I think if I was spending $500+, I'd just buy a Windows laptop and reformat it though - <USER2> more choices, and they tend to be upgradable.

It's also worth keeping in mind most Chromebooks must be disassembled to remove a firmware write-protect screw in order to flash new firmware. The one I have requires removing the battery/keyboard/etc - more than just popping off a small panel on the bottom.

<comment><USER68> Which chromebook do you have and what are its specs? I'm interested in doing the same, and I don't want to spend $800+ for a laptop I'm not going to be super happy with.

<comment><USER69> Check out GalliumOS. One of the best, Chrome specific, distros around. The question on hardware comes down to what you want. Many of the newest releases of ChromeBooks do not have removable media (M.2 form factor). So, choose wisely up front: hardware that is supported by current releases and storage and RAM suitable to your needs. The latest CB I have is a Toshiba Chromebook 2 with an i3 processor and 4GB of RAM. That model has a removable M.2 and so mine has an upgraded 128GB of storage. It has received app support for ChromeOS and also runs Gallium with full support. You can dual boot these machines easily, which is how mine is setup.

Nick Janetakis had a nice write-up on setting it up from back when the machine was newer, but to give you an idea:

[https://nickjanetakis.com/blog/transform-a-toshiba- chromeboo...](https://nickjanetakis.com/blog/transform-a-toshiba-chromebook- cb35-into-a-linux-development-environment-with-galliumos)

</comment></comment></comment></comment></comment><comment><USER70> Chromebooks have one fatal flaw: Microsoft Office on them sucks. You're stuck with side-loading in the Android edition, which is an app with a simplified UI and requiring always-online connection.

All of this might be OK for a schoolkid, but for anyone else you might as well stick with a Windows laptop for real work, or an iPad for real consumption.

<comment><USER71> I don't get the insistence upon Microsoft word as a killer app personally. It seems to be the suit and tie of software - more expensive than the alternatives and cumbersome but hidebound ones insist it is a prerequisite to be taken seriously.

<comment><USER72> I can't believe entire businesses I worked for rely on Microsoft Word for documentation. Heavy, slow, expensive, closed source, not searchable, with ugly output.

</comment></comment></comment><comment><USER73> I was an intern at Microsoft the day that ChromeOS was announced. Conveniently, a few days later the head of Windows was giving a talk to all the interns. Overall, spoke well, but during Q&A someone asked him what he thought about ChromeOS.

He laughed. He said it was a joke. He made it very clear that he didn't understand what Google was even thinking. And that stuck such a sour chord on me. Here's a company well known to be hiring the brightest people in the world, and they've announced a direct competitor to what you're doing... and you're laughing? It was like seeing an experienced chess player playing against a rumored-to-be-brilliant child prodigy and laughing at the stupid move the child was making.

I spent the next summer working on the ChromeOS team.

<comment><USER74> It's not like they haven't got a history of doing this. Remember when the iPhone had "no chance" of "any significant market share"?[0]

[0] [https://usatoday30.usatoday.com/money/companies/management/2...](https://usatoday30.usatoday.com/money/companies/management/2007-04-29-ballmer- ceo-forum-usat_N.htm)

<comment><USER62> FTA: _" There's no chance that the iPhone is going to get any significant market share. No chance. It's a $500 subsidized item. They may make a lot of money. But if you actually take a look at the 1.3 billion phones that get sold, I'd prefer to have our software in 60% or 70% or 80% of them, than I would to have 2% or 3%, which is what Apple might get."_

I wonder what the maximum penetration was for Windows OSes on phones.

 _"...my 85-year-old uncle probably will never own an iPod, and I hope we'll get him to own a Zune."_

What's a Zune? /s

<comment><USER52> To be fair, after over a decade of trying, Apple still only has 15% market share.

If Microsoft had the other 85%, they'd be in a good position.

<comment><USER13> Why should Apple care about the other 85% of the market if all the profit margin is in the 15% they have?

<comment><USER75> I guess apple is totally okay with being a minority of the market then since they're doubling down on proprietary sensors and apps that only work in their own ecosystem.

they can ignore the 85% if they want. The 85% of the market will ignore them back in turn.

<comment><USER76> They "double-downed" on that decision ten years ago, and now they are the most profitable company in the world. I think it's safe to say whatever bet they made paid off handsomely.

<comment><USER75> it's paid off handsomely and cut off apples prospects of expanding beyond the 15% market share they currently enjoy. sure owning 15% of the global smartphone market makes them money but androids 85% share ensures googles dominance in the sector unless apple lowers some of its hardware walls and turns them into bridges.

#buildbridgesnotwalls

<comment><USER76> What does market share matter when you've captured the part of the market where all the significant margins are?

<comment><USER75> A company that trades like a railroad company shouldn't be gloating about how little of the market share they want. there is no room for apple to expand with their rich people first strategy. Eventually you run out of new rich people to sell your products to.

Apples investors do not expect them to grow much more unlike Google or Facebook which both act as monopolies in both the smartphone and online markets. I'm sure apple knows what it wants but it sure doesn't show any abition to take over the world with their products.</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


New stable release of Go - <AUTHOR> http://golang.org/doc/devel/release.html#r57 <comment><USER2> This is actually the first proper stable release since the process was introduced, the first tagged release did not go through a similar release preparation.

I'm personally extremely happy with this development. We run Tinkercad on a moderately complex Go/C++ based server infrastructure (7 server types on tens of machines) and we have been lagging the Go tip given our need to avoid instability. The fact that we can now sync more often than 6 months and with less risk is great. It's a important step towards making Go a solid choice for distributed systems programming.

</comment><comment><USER3> Reasons to like go:

gofmt - no need to argue over coding style since it is enforced by this tool.

gofix - as the language evolves, the go team provide fixes that you can run across your old source code automatically.

<comment><USER4> If you look at the actual fixes gofix provides, most of them are to paper over a lack of language features. In particular, if Go supported function overloading, they probably wouldn't need gofix at all.

<comment><USER5> "If they just had function overloading, we could keep dozens of old, unmaintained functions around forever! Think how amazing documentation will be!"

<comment><USER6> As it is, their core libraries are remarkably clean and well-designed. The source code is even a pleasure to read.

<comment><USER4> It's pretty to make version one of your language's libraries clean and simple. The real challenge is how they hold up over time and the needs of evolution. Go's philosophy seems to be:

1\. Simplicity matters more than compatibility. 2\. Assume all extant Go code is easily mutable.

The purist in me finds that appealing, but I'm not sure how that will hold up over the long term. The language seems intentionally designed to _not_ evolve which doesn't seem like a good way to stay useful for real people for a long time.

Maybe I'm wrong and everything will work out, but I wonder if several years from now, Go will just fall over from its inflexibility and become unusable.

<comment><USER5> You typically can't even compile Linux with the previous GCC version, yet somehow that kernel has been tottering along for about 20 years now.

If you compile a program using Go, you get a binary that will run forever. Statically linked, contains the runtime, you're all set. If you update Go, you can then re-build that same program, but you might have to update a few things to get a working binary again--but you only have to do this if, somehow, that originally-compiled binary isn't working for you.

If Python decides they want to change the syntax for opening a file, then you can either 1. Keep a second Python around forever for compatibility or 2. Modify your program so it uses the new syntax. Go will never do this to you; as long as your OS continues to support the same binary format, I don't see why a binary shouldn't work indefinitely.

</comment></comment></comment></comment></comment></comment><comment><USER7> Now all we need is Go on AppEngine. Killer.

</comment><comment><USER8> What's the appeal of Go when something like OCaml exists and seems to cover much of the same territory and delivers better performance? Not trolling here, I'm genuinely curious.

<comment><AUTHOR> First of all, it is quite obvious that Go and OCaml are completely different languages designed around very different philosophies and styles.

Also saying that you are not trolling doesn't make your comment any less trollish, specially given that your only claim is false, Go, despite still being much younger and greatly unoptimized is already considerably faster than OCaml: [http://shootout.alioth.debian.org/u64/benchmark.php?test=all...](http://shootout.alioth.debian.org/u64/benchmark.php?test=all&lang=go&lang2=ocaml)

<comment><USER8> I'm asking about _technical_ merits of one over the other, which you didn't respond to at all. And look at the overall scores on the 64bit one-core and quad-core benchmarks. OCaml is ahead.

<comment><USER9> I'm looking at the overall scores on the 64-bit single-core and Go is six places ahead of OCaml. On the 64-bit quad, Go is five places ahead. The only one where OCaml appears to come close is single-core 32-bit, in which Go comes out one place ahead of OCaml.

(And just so we're clear: I actually like OCaml and have never used Go. So I'm not trying to wave some Go fanboy flag or anything. Those are just the numbers.)

<comment><USER8> [http://shootout.alioth.debian.org/u64q/which-language-is- bes...](http://shootout.alioth.debian.org/u64q/which-language-is-best.php)

[http://shootout.alioth.debian.org/u64/which-language-is- best...](http://shootout.alioth.debian.org/u64/which-language-is-best.php)

<comment><AUTHOR> I thought you were talking about performance, in which case the relevant chart is:

[http://shootout.alioth.debian.org/u64/which-programming- lang...](http://shootout.alioth.debian.org/u64/which-programming-languages- are-fastest.php)

Which shows Go is well ahead of OCaml.

The "which language is best" chart you linked has rather arbitrary weighting.

<comment><USER10> Did you downvote my reply instead of trying to justify your own comments ?

<comment><USER9> You can't downvote replies to your own comments on Hacker News, so that seems unlikely unless he's sock-puppeting.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> Is there any sort of "Planet" for Go? (i.e. <http://planet.lisp.org/>, <http://planet.python.org/>, <http://www.planetscala.com/>, <http://planetcsharp.com/> etc?)

<comment><AUTHOR> <http://planet5.cat-v.org/> is the closest, but haven't maintained it properly for a while, I should add a few new blogs and remove some that are obsolete.

<comment><USER12> ichi ni san shi Go.

</comment></comment></comment><comment><USER13> I haven't used Go het, but try to keep up to date. One issue I have is that naming conventions seem all over the place. Is there a logic behind the naming of things?

For example, function names are sometimes CapitalizedLikeThis, but sometimesLikeThis. This kind of messy inattention to detail makes the language come across as sloppy and unfinished.

<comment><AUTHOR> This is covered in the basic language introduction: names starting with a capital letter are public, names starting in lower case are private.

Go's naming conventions are much more clean, respected and even enforced than in almost any other language I know (Ruby and Python are specially bad in this, but C++ and Java are not much better).

<comment><USER14> _Go's naming conventions are much more clean, respected and even enforced than in almost any other language I know (Ruby and Python are specially bad in this, but C++ and Java are not much better)._

Do you mind explaining this statement a little further, specifically related to Python and Ruby. I work with both of those languages and find the naming conventions to be quite clean and respected. The style of the language is not enforced, but you'll certainly be chastised by any serious developer in either language for doing something outside the norm.

<comment><AUTHOR> The Python stdlib is full of examples of CamelCase, under_score and alltogether.

In Ruby just looking at the methods for strings is enough to find this like: "instance_variable_defined?", "rindex", "tr_s", "casecmp", "equal?", "eql?" and more. Yes, it is all lower case, but consistent it is certainly not.

<comment><USER15> I also find myself wishing that Ruby's destructive (!) and boolean (?) suffixes were either enforced somehow or not used at all.

The idea itself is cool, communicating extra context about what the method does or its intended usage, but they're used so inconsistently (even withing the Ruby stdlib) that A) They're unreliable and you need to check the source to find out the behavior anyway and B) It's less predictable whether the method exists with the suffix or without, so you need to either run it and modify your method call if there's an error or check the lib/API docs. This is the sort of thing that makes having an IDE handy for completing method names, which is unfortunate because Ruby is generally very usable without any IDE crutches.

</comment></comment></comment></comment></comment><comment><USER16> Go replaced python for me. Today morning for example I wrote a utility/demon that controls my Macbook Pros's Fan under Linux (because out of the box the fan stays @ 2000rpm till somewhere around ~80C).

I've also written 2 smaller web apps using Go and I had really fun doing so. Statically typed language for webdev = <3

I can say I became a Go fanboy in the last few weeks and I hope Go gets more traction. Go @ Android would be freaking awesome.

<comment><USER17> go already targets arm, android can't be too far away.

<comment><AUTHOR> Also Brad Fitzpatrick (of LiveJournal and memcached fame) recently moved from the Android team to the Go team.

Go on Android should be quite cool, but what will be awesome is Go on AppEngine.

<comment><USER16> > Go on AppEngine

I hope that's the "surprise" Andrew mentioned on twitter: > <http://twitter.com/#!/go_nuts/status/63762141555064832>

<comment><AUTHOR> I hope so, in the mean time there is this issue in the AppEngine tracker:

[http://code.google.com/p/googleappengine/issues/detail?id=23...](http://code.google.com/p/googleappengine/issues/detail?id=2382)</comment></comment></comment></comment></comment>


How to Scrape 20M Records from GitHub - <AUTHOR> http://www.opensourcewatch.io/story/ <comment><USER2> Yikes, HTML scraping? That's bad/against TOS, especially when GitHub has a robust API.

<comment><USER3> :) We explored using the API unfortunately at the volume of data being pulled down, the API is not feasible due to the number of authorized API keys needed.

<comment><USER2> And you don't see this as unethical?

<comment><AUTHOR> This is a huge topic of debate, but the consensus from "experts" seems to be that if it's public data that's not behind some auth, then it's fair. By the way, this is what web crawlers, like Google's crawler, does.

See: [https://www.quora.com/Is-website-scraping-legal-and- ethical](https://www.quora.com/Is-website-scraping-legal-and-ethical)

But I don't necessarily want to go down this rabbit hole here, as it detracts from the interesting technical issues outlined in the article. If you haven't read the entire article, I recommend that you do, because they had to overcome many interesting technical challenges while working on this.

<comment><USER2> A _little_ web scraping is fine, if and only if the website lacks a canonical way to do so (i.e. an API). Ignoring the API and scraping hard enough that you have to write an article _assessing scalability of the scraping_ is bad.

<comment><USER3> A bit more context may be helpful. While scraping scalability was a concern for us (for latency reasons), it was only significant to retrieve historical data as a one-time job, after which we throttled back. A latter segment talks about a priority queue object (SRRPQQ) which we use in lieu of scaling further.</comment></comment></comment></comment></comment></comment>


Java: Free at Last - <AUTHOR> https://mmilinkov.wordpress.com/2017/09/07/java-free-at-last/ <comment><USER2> What does it mean to "make Java binaries available directly from OpenJDK"? If the licensing restriction used to be just for Oracle-built binaries, anyone could just use normal distro provided OpenJDK binaries for kiosks and appliances, right?

<comment><USER3> Yes, you could. But the distro has to build these binaries. The OpenJDK project offers no binaries, you can't download OpenJDK binaries from the OpenJDK website.

</comment></comment><comment><USER4> maybe Oracle is finally gonna dump java and send it to a flundation altogether like other former sun projects. It failed to capitalize java I think

<comment><USER3> Given the amount of money they are spending on Java SE and the way they are making decisions that seems unlikely.

</comment></comment><comment><USER5> Or maybe, just maybe, Oracle finally realized Java has become a bloated piece of over-engineered enterprisey abandonware, the developer community has largely moved on, and it won't make them money going forward.

Java is in maintenance mode. So they open source Java (for real this time) so someone else will take maintenance costs off their hands, and they can still sell their app suites which use Java.

<comment><USER6> Maintenance mode, that's ridiculous.

It's just had one of the biggest releases in years, with 8.

And 9 I understand it is going to be even bigger, with jigsaw - the goal being much smaller dependency.

The Dev community is thriving, growing in fact. The latest release has made lots of people think Java is actually pretty good.

The reference implementation is now the open jdk. So yadda yadda yadda with oracle.

<comment><USER7> I second your comment about Java 8. Lambdas, streams and code in interfaces are extremely useful.</comment></comment></comment>