Machines do steal jobs - the repetitive, manual labor jobs that humans do not want. They also increase efficiency and profits for companies, leading to lower costs for consumers and investments in new industries that may not have existed before.
I worked in Medical Imaging for a decade. I made it so that one Radiologist with my software could do the work of two Radiologists without my software.
Radiologists are highly trained, highly specialized, and earn big, big bucks.
And I was making machines that stole their jobs.
Everyone, and I mean everyone, is at danger of automation helping replace their job.
It doesn't follow that because CartoCSS/Mapbox studios is "editable", "customizable", and "easy", that the specific combinations of configuration and adjustment available would meet his complex criterion of minimizing time, effort, money, and aesthetics. I'd imagine Google Maps is optimized to a T for all of the tiny specific label placements you want, and I'm not convinced from the one-off choice it would have been a 100% better idea for the OP to use.
It might have been a better choice, and maybe he didn't evaluate the option, but I still imagine the complexity of these options for the OP's specific aesthetic taste is quite large.
There is indeed no great solution to 'prominence' in the OSM data. There have been efforts to add population information to places, and to promote so called villages into so called towns when they are locally important, but those efforts have not been completely systematic (so they might be better in Austria than Minnesota, and even worse in Wisconsin).
Which is one reason to turn to the Natural Earth data, it has been curated more systematically than OSM.
> There is indeed no great solution to 'prominence' in the OSM data.
There has been lots of research about how to automatically produce Goldilocks Maps (enough information - but not too much) - I remember an article (whose URL I can't locate) which showed increased readability by pruning minor location names when they are too close to major locations. Google does that sort of thing well, but they are not the only ones nowadays - for example the osmfr Openstreetmap style does, in my opinion, a decent job of prioritizing labels: http://tile.openstreetmap.fr/
I looked around the local area here and it turns out to be quite reasonable, but there are also more than a couple misses, where the more notable town/village in a pair is suppressed.
Or for the interested, TileMill would be better as you can print exports in PDF as vectors. I spent a great deal of time trying to manually create transit maps for one of our 'archaic' transit agencies, and this was before Mapbox Studio's time. I use Studio a bit, but TileMill does the better job as it caters better for offline usage.
I do agree with others though that it would have been a great amount of effort to invest in understanding CartoCSS for his requirements, and getting to create it.
+1. There is literally zero negative impact on anyone's life by a hundred new js frameworks coming out every day. Ignore them. Use the ones you know and enjoy. If a new one seems to be gaining mainstream traction, spend an hour to check it out. Don't waste a second of brain activity or get annoyed with new frameworks - there is no reason.
Of course there is! It fragments the community, which means instead of pouring our efforts into making one really awesome framework (e.g. Ruby on Rails), every other developer is making their own.
Not that I think that's inherently bad, especially since web technology is constantly in flux, but you can't say that having tons of small frameworks has zero impact on anyone's life.
No. Modern sites usually depend on browser native dom methods and a Javascript utility belt, like underscore. Or some other combination of new stuff like angular or backbone whatever. But the "include Jquery in boilerplate" thing is not nearly as common anymore best I can tell.
Anyone who isn't using jQuery because "modern sites usually depend on browser native dom methods" is just being an asshole, honestly. If most big sites are using it, you can use it. I just checked: Twitter, Outlook.com, Stripe, Paypal, Pinterest, GitHub, Amazon, LinkedIn, Ebay, Tumblr, etc. The list goes on pretty much forever.
Those are all sites that have been around for ages though, and jQuery is quite hard to remove from a site once it is embedded in. Anyone creating a serious web-app from scratch now really shouldn't be using jQuery, but one of the alternative set ups mentioned above.
I disagree. AngularJS uses jqlite underneath for lots of stuff it does with the DOM. It can use jQuery if it's included, and if you create your own directives, jQuery is a great tool. No, you shouldn't create a single page app based on bare jQuery. Yes, you should use jQuery for manipulating the DOM vs the native DOM manipulation functions.
They wouldn't remove it even if they had the choice, because recreating what jQuery does with regards to cross-browser compatibility is just wasting everyones time. I'm not saying it has to be jQuery, but since everyone is already familiar with jQuery and it works well - why not jQuery? Eventually yes I think we can drop jQuery in favour of native implementations, but most sites can't afford to lose that compatibility yet.
Because it's not built for complexity? Maybe I'm a jQuery newb, but trying to built a tight app with it seems like a painful process. Sure, it's easy to build some quick tricks with it, but I'd hate to maintain a large project with a lot of it embedded.
I honestly can't see how jQuery dictate how you architect your code. jQuery is a DOM manipulating library and AJAX library. It is not a framework. It doesn't force you to organize your code in any particular way. You know that jQuery is not forcing you to not write everything in a single main function, right?
So I fail to see how using $('#...").foo() in your large project is going to be harder to maintain than rolling your own DOM manipulating library.
If all I'm doing is domConstruct.put() instead of $().append() then of course you're right. Dojo in addition to browser normalization and other good things that jQuery does, suggests a structure that works pretty well. jQuery to my knowledge does not.
This doesn't make one an asshole; native dom methods can handle most of what people normally use jQuery for nowadays (even with the same function signature) so unless someone needs to do something more specialized I am not including an additional dependency.
I would always encourage using a library over not using one - if you're not using a library you're just going to end up making your own anyway to "save time" - might as well start with something everyone already knows. If your project is also going to be something that a lot of people touch, you don't want to be using your own solution or a lesser known solution just because it's neater - that would be a waste of time.
So yeah, in my opinion if you opt to use your own solution or a lesser known one, I'd say you're at least a bit of an asshole because 1.) you're assuming you know better than the majority of people (who don't have a problem with using jQuery) or 2.) you're wasting everyone's time by forcing them to learn something new when there's a perfectly fine solution already available.
Given the recent abundance of jQuery alternatives, that's a big assumption to make. It's always disappointing when I find some code I want to use and it has a bunch of dependencies that make it not an option.
I'm not aware of any jQuery alternatives. Most things that predate jQuery (prototype, mooTools, YUI) have long since fallen out of favor, and the 'alternatives' to jQuery are mostly API-compatible subsets (jqLite, zepto). What exactly do you mean by 'abundance of jQuery alternatives'?
I might be an edge case, but I use Dojo a lot because it's much better structured for larger JS applications than jQuery which quickly becomes a mess if you start doing a lot in JS.
That said, it does everything jQuery does, and more, and in a very nice way IMHO. If you're used to the jQuery syntax sugar, you probably don't like it, but I never liked sugar.
Again with the anecdotes but a good friend of mine does exactly this. He's not a tech enthusiast and hasn't owned a computer since I've known him. His wife has an old laptop but he doesn't use it and isn't familiar with it.
At some point in the past couple of years he wanted a smartphone after seeing all of us using ours for instant messaging, Instagram, etc. and he chose an iPhone specifically because they have a reputation of being user friendly for even the inexperienced user.
His phone recently ran out of space due to the large number of photos he had taken so I advised him to hook it up to his wife's computer and use iTunes to back everything up. He looked at me like I had three eyes. Up until then he had never done this. Everything came over the air and he treated it as a standalone "appliance".
I did my best to walk him through it and stress that he might want to get a Dropbox or Google Drive account for some level of redundant backup since his wife's laptop isn't what I'd call reliable. As far as I know he sort of glossed over when I got to that second part but at least he managed to get his phone working again. It had actually gotten to the point where things stopped working due to lack of available storage.
True, but Apple has advertised "PC-Free" as a selling point of iOS devices since they rebranded iCloud in 2011. Theoretically the device should function perfectly fine as your sole computing device. I suppose their solution to this problem though would to have a larger storage option.