I actually believe that the HTML/JS/CCS/DOM mess is a good thing and that it's a pretty powerful combination that rivals other more powerful languages in 90% of the cases for the kind of applications one might want to build.
HTML is actually one of the most powerful layout engines out there, Javascript is as versatile and powerful a language as you might want to ask for in 90% of the cases, CSS has it's flaws but they are being addressed and is fine for most styling issues and DOM is just a very easy to understand albeit crude way to handle objects.
All in all a combination of tools that makes it extremely easy to get started and se results right away. I believe this is also on of the reasons why PHP is so popular. It's ability to seamlessly integrate with that "mess" either to take over the formatting or to fit into the existing formatting.
It's a conceptual framework thats closest to what we as humans understand.
Pythons problem like most other programming languages including Objective-C and Ruby is that while they are elegant and powerful computationally they are horrible for most people to get started with because just setting it up in itself is a big task.
So I don't think we are stuck. In fact I believe that if Python would take the same laize faire approach to the mess as PHP it would be much more popular than it is today.
> HTML is actually one of the most powerful layout engines out there
But it's terribly verbose and isn't extensible. XML was extensible, but even more verbose.
Also, I wouldn't say that HTML is a layout engine; CSS is the layout engine while HTML denotes the structure to be laid out.
> Javascript is as versatile and powerful a language as you might want to ask for in 90% of the cases
Erm, no. It's a terrible little language with some horrible misfeatures (==/===, {} &c.) which has one virtue: near-universal deployment.
> DOM is just a very easy to understand albeit crude way to handle objects
I've never really thought the DOM was all that easy to understand. Attributes vs. nodes, text nodes in unexpected places — it's a mess compared to a nice tree of strings and trees would be.
> It's a conceptual framework thats closest to what we as humans understand.
No, it's the conceptual framework we ended up with, so we all have taught ourselves and been taught to understand it.
> Pythons problem like most other programming languages including Objective-C and Ruby is that while they are elegant and powerful computationally they are horrible for most people to get started with because just setting it up in itself is a big task.
sudo apt-get install python
python
Python 2.7.9 (default, Mar 1 2015, 12:57:24)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> "hello world"
'hello world'
>>>
I kind of agree with both of your points regarding python. It is easy to set up for technologically literate people. But just using a web browser is orders of magnitude simpler for the majority. But really they're two different beasts and I don't think it's fair to compare python with a web browser in terms of "ease of set up".
Simpler for which majority? Aren't we talking about developers here, not the technically illiterate?
Learning 1 single (and relatively simple) language vs HTML/CSS for presentation (and all its headaches) and JS for logic/interaction? The browser is a stack, not a single piece of tech.
I'm not classifying people who use web stack as illiterates. Where did that idea come from? The discussion is about developers and the tools they use. We aren't talking about those who are technically illiterate. Nor are we talking about certain technologies being responsible for a project's success. And there are very few instances where one could convincingly point to a language as the reason for success. Making such assertions are usually immature at best.
We are talking about choosing a language like Python normally considered a serious language vs. HTML/CSS/JS/DOM (PHP?) which is often considered less serious development frameworks.
If you go back and see what I originally responded to, perhaps the context becomes a little clearer.
Except that's not the context for this thread at all. What you originally responded to was a comment about the webification of everything, and the lack of MIT-licensed GUI libraries. Several people other than me all responded to your contentions about web-stack being great, easy, conceptually sound, etc.
There was nothing in the OP this thread devolved from about Python itself, other than it having a great QT library. And as far as context is concerned, this particular comment trail was a response to the ease of using Python, not anything at all related to it being "serious" compared to web-stack.
How are we so far apart regarding what is actually being discussed in context? We can both read the comment thread we each keep replying to. Your context (and points) keeps changing.
That is exactly the context of this thread. It might not be your context but it is mine and since I started it seems like you are the one who is changing the context.
You focus on the wrong things. None of your distinctions or interpretations of what I say are wrong per-se, they are just not important distinctions.
The fact is that people can quickly build a webpage with all the bells and whistles in an environment they undertand without having to install anything or rely on dependencies to get started.
They can fiddle around, experiment with it in real time etc. they can play around with it so to speak.
It doesn't take itself too serious. It doesn't have a "guardians of the right way" saying how it can and can't be used.
You can still go to town and go crazy in making perfectly optimized code but it's not demanding that from you.
These are the important bricks in creating something that is powerful. It's ability to function as a toy for the very novice people. To easily provide them with visual feedback with assets they can relate to (cat pictures, video they saw somewhere) etc.
This is what VB had this is what HTML/CSS/JS/DOM/(PHP) has in spades. The non-judgement of the experts.
A lot of unbelievable crap was produced by novices hacking away at Basic in an earlier era as well. The difference was you could move on to better things - Pascal, C/C++, Lisp, etc.
We're stuck with this cobbled together mess of mostly broken shit in browser-land, and there is no bigger-and-better thing we can graduate to.
You know, if MS had written Outlook in VBA and told people to read their email as a plugin to Word, they would have been laughed out of the room. But that's exactly what Google did with GMail and now everyone builds apps that way! Browsers are for documents, and forcing applications to be interactive documents is, when you look at it like that, ludicrous.
Luckily turns out it isn't 1995 anymore. Browsers let you do stuff, pretty cool stuff last time I checked, sometimes it's play video, sometimes it's read a document, other times it is to create tangible things.
Browser are for whatever browsers can be made to be for.
There are things it's optimal for but luckily we don't live in a world were people only do what things were originally meant for.
I am using gmail in the browser. I am discussing this with you. I am transferring money between accounts, playing games, filling out surveys, controlling projects, looking up routes on map, enjoying streaming music, video etc.
That's a ridiculous comparison. No one is developing desktop style applications using sed just because it is turing complete, and there ain't billions of people using this software running on sed.
If the web was such a terrible application platform then it would not have been able to stomp the traditional desktop as much as it already has so far.
The reason why it's about native apps on phones is because they don't have access to many of the hardware improvements that are being added all the time.
But quite a big part of those apps uses webview to render information in.
If sed was supported by every platform in the world, including mobile phones, instantly deployable, upgradable, and had a more-or-less functional UI library attached, you can bet your Macbook a hell of a lot of sed would be being written.
We are now in the year 2016, not 1996. Browsers moved past the "networked document viewer" stage well over a decade ago and have been deliberately evolving into full application platforms ever since.
Yes it is. Because most people don't know what to use it for and so the mental barrier becomes the first hurdle for them to solve. Even the Terminal in itself is a mental barrier to most people.
Even after that is solved it's still hard for people to understand exactly why they should choose Python vs. HTML/CSS/JS/DOM.
In fact I don't think you can give one example of why they in 90% of the cases should use Python unless they are doing fairly complex stuff.
We are talking about developers building applications here, not "most people".
Most people don't know anything about HTML, CSS, JS, the DOM, how we got here, how it works, etc. They are neither the target audience of the article nor of the discussion happening here.
Writing an iOS app in Objective-C was the first time I remember thinking, "Goddamn, this is beautiful" since I was 12 and found Basic.
One fucking language.
Looked the same on every device.
And it wasn't hard to get a project going. We are making a fucking computer application, not boiling water for tea.
Now everyone thinks it's progress and noteworthy and oh-my-fucking-gods-amazing to do this shit with fucking HTML, CSS, and JavaScript. What. The. Fuck.
Can't Silicon Valley startups afford developers who can...you know...learn technology and write some code? Is SV only able to disrupt the world by leveraging a browser every damn step of the way?
We are fucking modern-day wizards of techromancy who bend electrons to our will. We are the closest we've ever been to magic (since 1969). We come up with ideas. We make them something fleshy bags of water can poke at with their greasy, grubby, sausage-like fingers while they chortle and snort and spit their Cheetos on their screens. All by just futzing about with some incantations we spill out via keypresses. We can make just about anything that doesn't violate the laws of physics, and we keep defending HTML/CSS/JS as anything other than a horrible fucking wreck that steals our babies in the night, and thus our joy.
Nothing about the browser stack is a conceptual framework that is closest to what we humans understand. That CSS has made slower progress in not being a shitshow than Python 3is fucking abominable. That everyone is clamoring for JS to get all these proven-to-be-holy-rocket-ship-to-the-heavens features other languages have had for-fucking-ever, and had better, is just sad.
What we seem to be creating is an entire decade of developers who can't seem to work without the browser stack. And that's a problem. Because we are going to be reaping the rewards of this for a long while. Browsers need to move beyond, developers need to move beyond. HTML is great when all you want is a motherfucking website.[1] CSS is fine if you're looking for a better/best motherfucking website.[2] JS was cool ... once upon a time.
All three being the primary path taken for building every new thing just feels sad.
[3]: While it's always good to use the best tool for the job, that shouldn't mean we stop creating better tools. Right now, the browser stack just seems content to keep adding more tools into the toolbox, instead of inventing the fucking cotton gin and automated harvester.
You want everyone to be wizards but they are not. You want everyone to find value in only the most advanced forms of science but hey newsflash they are not.
Most people are finding value in very very simple even simplistic things.
Instead of being offended by that instead find solace in the fact that you can create things most other cannot.
I do not want everyone to be wizards. I want those who practice technology magecraft to stop rushing toward the bottom. I want to see less rationalization of lowest-common-denominator development as the best there is—or, at its most charitable, an improvement on good things that already exist, because this is often borne of an inherent laziness to learn, use, and improve great tools. I've seen way too much frank discussion among frontend web developers who are doing things with HTML/CSS/JS because it's all they know, and now they can do other things with it, not because using HTML/CSS/JS is technologically superior, easier, faster, more performant, better suited to the job, etc. It's because they can use what they know, and don't have to pick up a new skill. I find this to be worrisome, analogous to manual laborers being unwilling to learn new skills to remain competitive and employable.
I am also not offended that people find value in simple things.
To place myself in my own line of fire:
There are languages I like, and others I don't. There are languages I use daily that I love and hate. I'd love to have a solid, cross-platform GUI toolkit in my language of choice. I want to be able to write applications by my own subjective measure of what I think is good for the job, how much I like the language, etc. I find it pretty sad that I can't just do that—say, write a truly native desktop app with Elixir, or Go, or Python, or what-have-you. But then I realize there are languages and tools that are already built for doing this. I just don't want to use/learn them. Or don't feel like I have the time. So, I'm just as guilty of wanting to use my pet technology of choice on all my problems. However, I recognize this, and I don't try to rationalize it as wanting to use a better paradigm or conceptual model. I just want to use the tools I want to use. Sadly, they don't always fit.
I can't help but wonder what cool tools we'd have to practice our magecraft if all the time invested in bringing JS everywhere had been put elsewhere.
Objective-C, to reuse that example, has plenty of warts. But it really outshines using the web stack to build native apps for desktop/mobile. Swift is even more pleasant in many ways. You use one language that's built for the job. You always think in that language. You don't have to create style sheets, use a DOM, or use JS bridges to things already made to do the job and do it well. Someone else already said in the thread that using a document model for applications is simply not the write paradigm. But we've grown so accustomed to shoehorning our ideas into a document model, we struggle to recognize this is flawed.
Cross-platform and sans-browser development would be so much easier if there was a single GUI toolkit used on all OSes. Electron has grown so popular because people want to build desktop apps, and they want them to run on as many platforms as possible, while looking and functioning identically. But it brings problems, overhead, and other pains because you're building an application for desktops using the browser stack.
Maybe one day we'll see this situation improve. Or maybe I'll give in like everyone else. Despite my ire, I am frequently impressed when someone creates yet another do-thing-in-JS tool ... and depressed.
Lastly, I think you meant find solace, not solitude.
I never said anyone should care. You asserted in your prior comment a number of things "I want", assumptions you made about my state of mind and what I think. I replied with an explanation of what I actually think.
You keep jumping all over the place in each of your comments here, throwing out one assertion after the other, making up what you think applies 90% of the time, then constantly rebutting with whatever you've chosen to be "the point" in a given comment. It makes for very tiresome and fruitless conversation.
HTML is actually one of the most powerful layout engines out there, Javascript is as versatile and powerful a language as you might want to ask for in 90% of the cases, CSS has it's flaws but they are being addressed and is fine for most styling issues and DOM is just a very easy to understand albeit crude way to handle objects.
All in all a combination of tools that makes it extremely easy to get started and se results right away. I believe this is also on of the reasons why PHP is so popular. It's ability to seamlessly integrate with that "mess" either to take over the formatting or to fit into the existing formatting.
It's a conceptual framework thats closest to what we as humans understand.
Pythons problem like most other programming languages including Objective-C and Ruby is that while they are elegant and powerful computationally they are horrible for most people to get started with because just setting it up in itself is a big task.
So I don't think we are stuck. In fact I believe that if Python would take the same laize faire approach to the mess as PHP it would be much more popular than it is today.