Ask Slashdot: Preparing For the 'App Bubble' To Pop?
Niris writes "I am currently a senior in computer science, and am expecting to graduate in December. I have an internship lined up in Android development with medium sized company that builds apps for much larger corporations, and I have recently begun a foray into iOS development. So far my experience with Android ranges from a small mobile game (basically Asteroids), a Japanese language study aid, and a fairly large mobile app for a local non-profit that uses RSS feeds, Google Cloud Messaging and various APIs. I have also recently started working with some machine learning algorithms and sensors/the ADK to start putting together a prototype for a mobile business application for mobile inspectors. My question: is my background diverse enough that I don't have to worry about finding a job if all the predictions that the 'app bubble' will pop soon come true? Is there another, similar area of programming that I should look into in order to have some contingencies in place if things go south? My general interests and experience have so far been in mobile app development with Java and C++ (using the NDK), and some web development on both the client and server side. Thank you!"
Mobile app bubble
Professional stubble
For who will browse jack
Amid the economic rubble?
Burma Shave
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
I'm not sure it is. Maybe I'm biased because I am employed as an Android developer, but both Android and iOS developers are both incredibly in demand right now. Every brand wants or has an app, and every webapp needs a native mobile counterpart to be taken seriously. Weren't the app bubble predictions back in 2010? I don't think they hold any water any more. Mobile is the future and isn't going anywhere.
Programmers should be able to take on a wide variety of tasks. Fortunately, smart phones are not alien space technology with nothing in common with computers. From the point you're at now, you should be able to branch out to things like desktop graphics-based apps and perhaps GPU computing without too much trouble. You should prepare yourself for this *now* so that you don't find yourself scrambling if the smartphone app business doesn't go where you want it to. Remember, what your prof teaches you in college is maybe 10% of what you need to know. (Not kidding, that really is the deal, you should be doing A LOT of coding on your own time in order to learn how to operate without that safety net & get enough patterns stored in your head that you can tackle harder problems in the future.) Good luck!
I I do not believe in "bubble", but in some applications being successful because they are especially suited for the mobile environment, while others will disappear because they are more suitable for a desktop computer. In my work soon I will have both types
Religion: The greatest weapon of mass destruction of all time
As people transition more and more of their time to Phones and Tablets, the market for iOS and Android apps will only grow. Was there ever a PC apps bubble? A career in software development isn't about "having diverse skills", its about learning whatever you need to know when you need to know it. Sell yourself as someone who is constantly learning and can pick up anything, and you will never go out of style.
The App bubble has already popped. The only people that make money writing apps are contractors building them for companies that insist they need an app (even though they probably don't...), employees at companies like that drawing a salary, and the 1 in a million that comes up with the ugly meter. Eventually the marketing departments will realize that "Billy Bob's horse feed insurance" doesn't need a mobile app and all of that will dry up pretty quickly.
If you want to have a long career in development, learn databases. You don't necessarily want to be a DBA since they tend to get tied to a platform and their fortunes rise and fall with it (Foxpro anyone?). But, learn how to manipulate information. There will always be someone willing to pay you to manage their data. Maybe through an application, maybe through an app, maybe through a web interface.
At the end of the day, most of the decent paying technology gigs come from managing information for someone.
I got into this business in the early 90's and was told that by a friend of my father's who had been programming since the 60's. It's the best business advice anyone has ever given me.
Focus on learning more C++, should be around for a while and if not it will help you understand other languages and make it easier to pick up. I am a PHP and Objective-c developer starting my last year in college after the summer and I recently started a android app project and found it pretty easy to understand due to my knowledge of other languages. Taking courses in C/C++ and making some games with openGL has really taught me more and I love it.
Anveto
There is no app bubble. The majority of the world's population has their own cell phone now. That trend is only going to get closer and closer to everyone owning one.
Even if people won't make money from shitty apps no one uses, there will be plenty of jobs for people who are willing to work on the apps like normal developers writing software for someone else.
You'll be able to show on your resume/cv that you've picked up what's needed to be done, worked with a fair few apps, and be able to apply what you've learned in all sorts of places. The stuff you're learning now will be invaluable for all later stuff, and you're lucky enough to be in an area that's also demanding high prices. Could be a lot worse. Enjoy it, soak it all up, save for the next thing to learn, make contacts, keep libraries/fragments of code for later stuff.
Waiting for an amusing sig.
... give or take a year.
File under 'M' for 'Manic ranting'
Check into embedded systems. A lot of your skill set will transfer, and it's another expanding field.
Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
Since the beginning, it's always been hard to make a living just writing apps, you have to be really lucky, have great marketing, or work for a company that makes something else that happens to need an app.
However, the skills necessary to write apps have always been in high demand, at least here in Silicon Valley, California. Even though the rest of the country was going through high unemployment the last six or so years, the company I've been working for and others around here have never been able to get enough skilled developers.
Be flexible, and best of luck.
spend a weekend brain storming.
Create your own company.
Make a go.
You're skills are fine.
The Kruger Dunning explains most post on
You mean, companies that have no business plan except leech off investors until a profit model magically appears? Those are the kind of companies that fail when tech bubbles pop.
But there are tons of smartphones, and tons of people who want apps for their smartphones. As long as you work on something that has a real market and makes real money you don't have to worry about 'bubbles'.
How can I believe you when you tell me what I don't want to hear?
Gather lots of knowledge on cloud development. It's a much slower moving, but very certain, change coming. Even the most hardcore nay-saying managers or admins (who will always whine about security as long as they can scare people) who want to keep it all in house are going to fold for the cheap allocation of VM's in the cloud. That's where your software will be running in about a decade (again, it's slow moving). But companies will own fewer and fewer physical servers.
That company doing app development had other employees to pay besides developers. Also overhead, workers comp, unemployment taxes, business personal property taxes, Obamacare, etc. etc. All of which means they have to bring in at least four times as much revenue per developer compared to someone doing it from home. The company structure, with business taxes and regulations, makes it a lot HARDER, not easier.
Software development is like any other creative industry and what happened to the music industry is now happening to software development. The days where you could charge more than a couple of bucks for all but the most widely used applications are gone.
It is getting harder to make money in apps (i.e. it now has to be good), but the slope of mobile device sales is very steep, and will not decrease anytime soon.
One of the problems in the mobile app space is the number of folks who fancied themselves good at CSS and some JavaScript framework and parlayed that into a creating some pretty weak sauce mobile apps. There's way too many folks like that in the market place, and frankly they need to be culled.
I will make this point, Apps often need to talk to something. You should understand the ecosystem end to end. If you can pop a web service up on a cloud instance, and feed that into your mobile app you will be a very valuable player on a team. That may mean learning one of the Java VM languages (Java, Groovy, JRuby, Clojure, Scala, Jython, etc.) or one of the Microsoft .Net/CLI languages C#, etc. Personally I've found there to be way more work and money on the JVM side of the equation. The trendy languages also tend to run in the JVM space, so it's easier to stay cutting edge.
I would not recommend staking your career on things like PHP. They work. They are popular in certain circles. But large companies are usually JVM or .Net.
...but beyond that it's simply guesswork. Until you know, keep lots of options open.
If it were easy to distinguish paradigm-shifting new technologies from fads then everyone could do it. The proliferation of technologies is perhaps a sign of a bubble, or perhaps a sign that none of the 'innovations' in, say, the Web, or mobile devices, has quite got it right, and the first one that does will take the computing world by storm.
But frankly, with the experience cited in the summary - machine learning, Java, C++, client and server web development - areas like desktop application development or embedded systems really should not be radical leaps.
Bubble's can effect many adjacent industries. For example, some companies might have many customers who work in that industry, and if those customers go kaput, then so might their sellers.
Intel is in a similar situation. I think it was something like 70% of their sales are to HP and Dell when I looked at their annual 10K a few years ago. If either of those companies folds, intel is in trouble. The scary thing is that this may be a reality soon for both HP and Dell. If you're an employee of intel, that could concern you. If you depend on any of intels technologies for a product you make, that should concern you as well, even if the industry you work in has no indications of collapsing any time soon. Even if intel is still available to sell to you, their prices might jump due to economies of scale.
Careful with names containing L slashdot.org/~AiphaWolf_HK slashdot.org/~AlphaWoif_HK slashdot.org/~AiphaWoif_HK
The fact is, development of mobile apps as an individual and getting rich has come and gone. The marketplace is filled with so many versions of apps that do the same thing.
That being said, enterprise mobile development is hot. Some think that most companies don't really need an app - maybe, they don't. But, most want to offer additional value to their customers or to develop enterprise apps for use within their company to manage the company's business processes.
When the .dotCom bubble burst...many found themselves out of work...briefly. So, the big website isn't really happening. But, most companies still wanted a presence. And, so those developers still make a decent living. The internet hasn't dried up. And, the promise of mobile is just beginning.
And, the skills one learns...assuming it isn't just HTML or HTML5 will be transferable. Grab a little JavaScript, learn Android or iOS programming. And, learn about hybrid solutions that leverage all of the above. Lots of jobs out there for those skill sets. No worries for those who are on top of their game and keep their skills fresh and take opportunities to learn.
Sorry...need to repost...browser had logged me out...grrrr.
---
The fact is, development of mobile apps as an individual and getting rich has come and gone. The marketplace is filled with so many versions of apps that do the same thing.
That being said, enterprise mobile development is hot. Some think that most companies don't really need an app - maybe, they don't. But, most want to offer additional value to their customers or to develop enterprise apps for use within their company to manage the company's business processes.
When the .dotCom bubble burst...many found themselves out of work...briefly. So, the big website isn't really happening. But, most companies still wanted a presence. And, so those developers still make a decent living. The internet hasn't dried up. And, the promise of mobile is just beginning.
And, the skills one learns...assuming it isn't just HTML or HTML5 will be transferable. Grab a little JavaScript, learn Android or iOS programming. And, learn about hybrid solutions that leverage all of the above. Lots of jobs out there for those skill sets. No worries for those who are on top of their game and keep their skills fresh and take opportunities to learn.
It's not over until Netcraft confirms that Steve Jobs is dead.
What?
WARNING: Smartphones have side effects--most of them undocumented.
Maybe it is just me, but how many apps are you buying these days?
I used to find one pr month, most of them games. But I don't really buy games anymore. Most of the reason is that I really hate those in-app purchases. I don't mind spending a couple of $ on a app but not knowing how much it will cost me to complete the thing is not acceptable.
So I just buy apps that performs a function that I need and it's perhaps down to once or twice a year.
1- if you're good at what you do, there'll be work for you. Just make sure to get the message out that you *are*good, on top of being good. Network !
2- Maybe widening your scope is wise, but build on your strengths, don't branch off in a completely unrelated domain. Maybe if you do Android, that means iOS, or maybe that means looking into revenue generation so you can get into independent developing, or maybe looking into low-level (OS, drivers) programming, or maybe graphics, security, databases... Look around you: what skills would help you do your job better ? Which skills are most needed and rewarded in projects around you ?
3- The App bubble will burst for some, and strengthen non-bubbly others. Try and find a good company that's here to stay, with a business plan and credible income projections... not a flash-in-the-pan outfit that's mostly here to part investors from their money. Subcontractors/consultants are usually safer, inquire about the good ones in your area and make yourself known.
4- Don't forget the non-technical stuff. Dress sharp. Be pleasant to work with. Be frank and honest about issues, but don't be a bitchy diva, learn as much tech and relational stuff as you can...
The Cloud - because you don't care if your apps and data are up in the air.
So...no.
Learn databases. Figure out how to make software which pulls data out of a database, does some simple calculations, then puts it back in a database. Also learn how to make software which takes data out of a database and puts it in a report. On the Microsoft side there's all sorts of frameworks and tools for this, and it's dead easy.
On the down side, you'll be ready to shoot yourself after a couple of months of this.
I'd be considering how much your skills match 1 page/javascript web applications. They (or the more complex ones, at least) tend to involve UI programming that follows patterns common to all UI code. Since you have some web experience and some UI experience, the gap is probably things like deep knowledge of CSS and javascript (inc quirks).
An intelligent potential employer (assuming you can find one...) would recognise the commonality, and if you had some projects outside of work that delved into Javascript apps, that would give them confidence you could pick up the difference.
... and no-one employing you will expect you to have decent specialist skills for many years..
Apps may or may not stick around, but one trend will continue: the increase in service oriented computing.
I.e. computing functionality is being broken down into modular services (usually web services) that are simple enough and independent enough to be easily scaled horizontally but that can be composed in order to provide richer more complex functionality.
If you understand this architecture, it will help your marketability immensely whether you are writing end user interfaces (such as apps) or building the aforementioned services.
http://yetanotherpoliticalrant.blogspot.com
More automation, an inflated currency, and lame overpriced education.
THERE IS NO WHERE TO GO....might as well give in, let us bite, and turn you into one of the infected masses.
ZOMB NOMB IE
Intel is in a similar situation. I think it was something like 70% of their sales are to HP and Dell when I looked at their annual 10K a few years ago. If either of those companies folds, intel is in trouble.
The industry isn't vertically integrated like that. If Dell and HP go under, then the companies poisitioned to take their place like, Lenovo or Acer, are still shipping computers with Intel chips. It's like lobbyists who donate to both major US parties so that no matter who gets elected they still win.
D6 63 0D 70 89 81 BB 8E 7B 7C 5F 5D 54 EA AB 73
www.benimmasorum.com
The more important question, from the economic view, is whether apps are overpriced. Given the number of free and 99 cent apps, and considering that we were used to $200 software titles before, that hardly seems realistic.
If anything, apps are evidence that the $400 productivity suite bubble has popped.
http://www.benimmasorum.com
Last I heard, Intel was actually expanding their mobile development branch out in Hillsboro, OR.
Stop worrying about the "app bubble" and build yourself a portfolio of working products.
In my case, I registered a .com address with my name and built a nice and easy to navigate website that showcases my finished products (complete with videos screen capped from the device simulators), audio and visual works, experiments, etc. For each thing I generally wrote down a little blurb about how I arrived at the results I attained, why I decided to do specific things and sometimes how I achieved my end goals (you have to be very careful not to divulge your techniques though).
The decision to hoist up my own website as my professional portfolio was probably the single most career-changing thing I ever did as a freelance programmer/graphcis designer/musician. Almost instantly, people stopped asking me for paper qualifications and prodding my history and started hiring me simply because they liked what they saw and I'm a nice person to work with. More often then not, someone will come to me with an idea and pick out something from my portfolio and ask me if I can make it as awesome as that. I'll typically say that I can adapt the design aspects they like to better fit their idea for a product, and off we go on a business contract together. I've even had a few offers for jobs from some local studios and one game development company. All of this came through my portfolio website.
So really, the best thing you can do is demonstrate your own skills by assembling a portfolio of things other people can see. If you can do that, then it doesn't really matter if the app bubble bursts. You'll have completed a few projects that you can showcase as a testament to your own abilities, and since a lot of stuff like C++ programming is cross platform you can use your portfolio as an augment to your own CV (or a straight out replacement).
Just because a company folds it doesn't mean there isn't a market for the goods they sold.
If Dell or HP fell over, someone else would step in to fill the void, sure they may not get quite as big as either HP or Dell were, but there is still a market there to service, and that market wants Intel
Normal people worry me!
you can't usually see such things coming
The Internet bubble was obvious. Other bubbles through time, have been very obvious - the only thing not obvious was the point of collapse, not if they would collapse.
There is no "App Bubble". The truth is that going forward, way more people are going to be using tablets and smartphones than use or used computers. Understanding any of the mobile platforms and how to make the most of them is a greatly valued skill, and will only increase.
The other aspect as others have mentions is server side programming which will always be a good field. But if he enjoys mobile development it's easy to know a career in that is possible.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
As the bar is being raised, either form your own company to produce superior works, or find your way to the companies that are doing this.
God spoke to me
I have a half dozen apps that are no longer supported and don't even work on the latest iOS devices
Mostly that's because they cannot find developers to update them. The app market is no-where near any kind of ceiling in terms of the possible universe of applications.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
But I guess I could care less.
It should be I couldn't care less, cunt. And to those who's thinking about defending the use of I could care less, don't. You're wrong, and that's that.
I'll answer your question:
Learn SQL.
Learn relational databases and what they're good for and why.
Then learn big data and what it's good for and why.
soak it all up, save for the next thing to learn, make contacts
Indeed. If you get a good gig while mobile is growing so fast, remember hard times WILL come. There are thousands of other young (and old) developers learning the next thing, competing for your next job. Some major events will strike the industry. You may get injured, who knows, but shit hapeens, it's certain that some kind of shit will happen. When good times come use them to prepare for leaner times.
bubbles exist when there's no real money involved. When it's all about making money in the future and throwing now money at it.
There is no "app bubble". People are paying real money for it, and there's no reason to believe they will stop. Perhaps the investments in companies that make them will pop, but there will never be less money being spent on apps than there is now.
There is a bubble in-so-far as there is still a gold-rush feel to app development.
There is not a bubble in-so-far as there is a ubiquitous new(-ish) form factor of computer, which requires different types of interfaces to existing applications, and has some new applications.
The question is, are you developing Chaos Rings, or Fart buttons; Mobile Banking apps or 'Check Ur Google Finance Now'.
Mobile is the future and isn't going anywhere.
I can't tell if you are very enthusiastic, or a very sly troll. "Mobile isn't going anywhere" should be a bumper sticker. Sounds like the whole thing is well grounded in the cloud.
I am a senior engineer for a tier-one mobile phone manufacturer. I can say, without reservation, that your experience will help you obtain appropriate employment. Your experience with C++ and Java are good. Try to get some javascript and webapp experience as well.
it just got easier to write the apps, and India programers got common. And Malaysian programmers. And Spain, Greece, Mexico. You got outsourced. Whine all you want about "quality", but you can't compete with people living for 1/100 your cost. It's also tough to compete with people who've never had anything bad happen to them in their lives. Survival bias. When you've got so many programmers you get to pick and choose those one.
But the bubble isn't gone. There's 100 million android devices. They need software. There's no bubble, there's a really big market.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
You're a cog in somebody's machine. You can be replaced and nobody knows the difference.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
Most posts here are on whether there is an App Bubble or not, but thats not the question.
Even if there is an App Bubble or not, it is still a worthwhile question to ask what other technologies are worth spending time to learn if you want to broaden your professional horizons.
If you can comfortably program something semi-decent in C/C++, Perl and JavaScript, then you've got the skills to learn any modern programming language within two days. That should be your aim. Forget about "having contingencies". You don't need them. You need to be able to learn them quickly. That'll do. As a programmer, you're able to learn. That's the skill you have. That's the skill you'd need. Add an older language, like assembler, or fortran, and there's no programming language that you won't be able to learn in a single day, and master in a single month.
It's the financial sector that was predominantly hit by the shock wave of the bursting dot-com bubble. It's not going to be different this time. People who created start-ups with "clever" entrepreneurs back then, saw their company go down under very quickly and without much of a noise. The entrepreneurs were devastated, as setting up businesses is what they do for a living, so when every company they were trying to jump start bust, they were in a world of pain. Developers on the other hand, brushed off their shoulders and moved on to the companies that succeeded, or dusted off their C skills and went back to coding libraries and other "super-exciting" stuff they used to do before they were approached by said entrepreneurs. And when the entrepreneurs approached them again with a vision of an app business, the developers said "why not". And the circle of life continues.
I wouldn't worry about app bubble even if making apps is all you can do at the moment. It will take you a month or two to refresh/pick up some skills in another branch of programming and you'll be just fine. It's your talented business buddy I'd be worried about, that is, if you have one.
Tip: If you're starting up an app business with somebody, don't let them talk you into investing your own resources, and you'll be just fine. Just tell them your investment is your precious time and your unparalleled coding talent ;)
If you are looking at board-level embedded development,there is a heavy industry EE bias. If you are not an EE, you will have a rough go.
Disclaimer: I am an EE.
..don't panic
The only thing limiting apps right now is small memory and slowish, low core-count processors.
More RAM and a faster CPU than my last PC had in the early 2000s. Didn't seem to limit it too much.
When your pad or phone has 16 cores running at 3 ghz, a decent ultracap power supply, 64 gb of ram... you'll look at that "app bubble" statement the same way we look at what the head of the patent department in the early 1900's was saying when he declared something along the lines of "everything important has already been invented", or the famous "no one needs more than 64k (or was it 640? Can't be bothered, both are equally ridiculous.) The little AI in your pad will laugh with you.
My server has 32 cores, 32GB of RAM and runs at around 3GHz. I haven't noticed it laughing at me yet.
As others have said, there are millions of apps in the app stores, and maybe a few dozen that are actually useful outside of a small niche market (or instead of the web site they're replacing). Most of the rest are just crap to bring in ad views.
There's always a tech bubble. You'll constantly have to update your skills. Accept that.
Work on your non programming skills. Take some engineering classes, learn how to engineer something instead of hacking something together. If your future boss plonks something on your desk and says "do it", you should be the person who thinks about it, writes out the requirements, does some math, uses that to look for a solution, writes the documentation, etc... and THEN programs the thing.
Be that person, and you'll always get hired, because you'll do good work.... Hopefully. :D You'll still do better than the schlub that just hacks out a quickie solution. It will break. Or it will be too slow. Or it will not take future constraints into consideration. Or it will be poorly documented. etc etc etc.
You can already program. Make sure you can engineer.
Supposedly Bill Gates said DOS would support "640k, which ought to be enough for anyone." Nobody has managed to source the quote, though. Still, in the context of DOS software in the early '80s, for single-tasking text-based apps, 640k was HUGE and it certainly would have been enough for anyone who owned a PC at the time DOS was released. I don't know why people take it as a proclamation for all systems for all time, which, obviously, would have been foolish.
I've also heard that Steve Jobs insisted the original Mac would have only 64k, but a little research shows the prototype had 128k before Jobs took over the project in mid-1981.
When the iPhone came out, a lot of people did well by having the first app in their category. Today, with millions of apps in the store, it’s a lot harder to get noticed, and most new apps are going to have several existing competitors. That’s what I’d call a saturated market.
A bubble is something else altogether: it’s when people buy things that they expect to flip for a higher price in the short term and bid the prices up until the demand collapses.
follow the Hype Cycle. http://en.wikipedia.org/wiki/Hype_cycle
Phone apps will be no different. Just be sure to have a job during the trough of dissolutionment, or a day job you can pursue in the meantime. The real money is to be made after the hype curve when the technology matures.
Science advances one funeral at a time- Max Planck
What are you worried about? Finding a job now, or one 5 years from now? Sounds like you have the skills to get a job now. So don't worry what will happen 5 years from now.
Lets suppose this mythical bubble pops. What is the worst case scenario? The 250 million iPhones will still be out there. People will still want a new game or app. But lets suppose they just up and disappear. They'll be replaced with something, google glasses or iWatch or whatever. So guess what you do? Learn the new machine, and move over to it.
Go get a job first, then worry about keeping your skills current and diverse to move to another job down the road.
You sound eager, humble and smart.
In other words: you'll be fine no matter what bubble pops.
Please login to access my lawn
My observations of the culture, technology, and business developments in the app world have convinced me that iOS is a very healthy, growing platform, and Android is a shaky, unpredictable one. Most people don't see it that way, but most people haven't paid as much attention to all three of those sides of the coin in the way that I have. I'll spare this (certainly Android-friendly) audience my larger analysis, but keep in mind that iOS is build on OSX technology that is three decades old, while Android is built on Danger Hiptop technology that is about 10 years old. It's not 7 years to 5 years as far as the maturity of the security models is concerned.
I think that you'll find stabler, better compensated work as an iOS engineer. It's a big API, but learning it in pieces is manageable.
As to whether there may be a bubble, this question is not necessarily one of merit, but perception. If a large number of people become convinced that "there's no money in it", the financing picture could change even though apps were still creating massive value. With our current ecosystem of apps, this is less likely because many apps are not free - they have revenue in straightforward amounts (especially in iOS). Also, many apps are not stand-alone, but created as part of a larger business, so it matters less what outside investors think of their profitability. So I doubt any divestment in iOS is coming in this decade.
You're forgetting one major infrastructure problem that in my opinion plagues apps: mobile data plans. Most fancy games and apps these days are at least several tens of MBs big - I've seen ones which hit the 200MB mark. Most people - even in the developed world - don't have a mobile data plan of more than, say, 1GB per month. If one single game eats up one fifth of that data plan in no-time, that's a very big reason for me NOT to buy it. Sure, I could go home and use my wifi to download said app, but that kinda defies the concept of mobile, doesn't it? ISPs keep talking about speeds, fancy 4G/LTE etc, but the speed of mobile internet isn't really the problem; it's the limited amount of volume that is the bottleneck here.
The only real bubble is that companies like Yahoo are willing to pay lots of money for one-app companies with very little tangible value. You should only really be concerned if your plan is to try to make money by creating your own app and selling it to a megacorp.
Where the money is for mobile developers is not making apps themselves, but making apps for businesses that want apps to further their non-app-related goals. It's similar to websites in the 90s - while a few outliers were people making money on websites they were building for themselves, most web developers were making money by building websites for companies to achieve their other business goals.
I've been doing mobile development for over four years now, and this whole time I've been expecting hordes of developers to descend on the market and give me a lot more competition. It doesn't seem to be happening - demand for mobile developers is still far outpacing supply. It will be a good field to be in for years to come. Eventually the mobile developer market will be saturated, but this took a decade for websites, and the people who were any good didn't care because they had the time to build up loads of experience and put themselves at the top of their field.
If you find that you do need to shift your career path, you can generalise quite easily - Java is still widely used in other areas such as server-side web development, and Objective-C will let you write native OS X applications. Generally speaking, if you can handle mobile development, you can handle desktop development with ease.
Bogtha Bogtha Bogtha
Back in the 90's CDROMs fillled a gap which couldn't be filled using the web. Processor intensive content such as video and animations were delivered using CDROMs due to the limits of bandwidth and processing power.
Native Apps fulfill a similar role now, accessing native 3d APIs and other hardware features more easily than web pages.
If you are keen on the App world, keep a hand in the Web based side of it, as one day, it will surpass Native apps.
In the meantime keep doing what you enjoy, the experience will be invaluable as well.
I stopped thinking of phones as toys when I realised that in terms of flops, smartphones had overtaken the capacity of the supercomputers I used to work with back in the earlier days of my career. I'm thinking of the Cray X-MP here. (And yes, I'm even older than that.) That beast clocked up somewhere around 80 mflops (depending on whom you ask), while a quick google search pulls up a benchmark for a Samsung Galaxy S2 at 389 mflops. Yes, I do know that they're different machines, with a very different methodology for programming (which is why I suspect the old Cray would still smoke the Android in some tests), but the power is definitely there.
Trouble is, the phones' hardware is maturing faster than its operating system. Because they're aimed for the consumer device market, they don't (yet) have the ruggedness we expect from a properly grown-up operating system. (You might guess that I'm not talking about Windows here. Sorry.) But I guess (or at least hope) it won't be too long.
You are talking as if AI field is widely spread to general level in public. When I am talking about AI, I mean real AI, not a silly chat box (Siri-liked) crap, simple minded automation, or mined data analysis tools.
There is a possibility that the bubble will burst before the real AI technology arrives to general public, and the reason of the burst could easily be caused by the insanely growth of number of crappy apps. Good apps (with small number of developers) will stay, but most of app developers will be out of jobs.
The believe in limitation of hardware is a different point of view, but I still see that it is not going to stop the burst. Yes, higher capacity of hardware could open up new ways of apps, but at the same time it would encourage more crappy apps. The point of bubble burst is the quality of apps, not what usefulness (and not crappy) apps can do. /p.
When I am talking about AI, I mean real AI, not a silly chat box (Siri-liked) crap, simple minded automation, or mined data analysis tools.
There is a possibility that the bubble will burst before the real AI technology arrives to general public
There's a good possibility we'll all be dead before the level of AI you're alluding to arrives. Back in the 70s they thought AI was just a few years away. Here we are, 40 years later, and we're still playing tricks to simulate AI rather than doing the real thing. Siri (the simple chat box) can be useful in certain situations, but really it's not much more than ELIZA with a web backend.
Meanwhile, today's smartphones have far more power than needed nearly everyone's app ideas. They are more powerful than a PC of just a few years ago.
The little AI in your pad will laugh with you.
I thought even the real Singularity nutjobs like Kurzweil generally limit themselves to "within ten/twenty years", not "as soon as we get an incremental increase in hardware capabilities".
To have a right to do a thing is not at all the same as to be right in doing it
Like some kind of science. Then you could write software for that specialty.
These "vertical" markets have different economic cycles than computers.
Here's a tip for you: if AI was just a question of writing a clever bit of software, then it would probably have been done by now. I know it's sacriligeous to say it on slashdot, but not every problem is solveable by programming.
To have a right to do a thing is not at all the same as to be right in doing it
I trust the big browser developers to handle SSL certificates and warn me if one is incorrect (mostly). How do apps handle DNS redirects or man-in-the-middle ssl interference? I don't trust them to do it right.
Cheap storage VM.
Even my 8 year old kid knows this by now.
To have a right to do a thing is not at all the same as to be right in doing it
Please mod parent up.
To have a right to do a thing is not at all the same as to be right in doing it
no-one employing you will expect you to have decent specialist skills
Short and sweet and correct. I worked mostly in Java throughout my time in college. I haven't touched the language since(I spend a lot of my time doing database work, and interactions between our database and .NET MVC). As long as you learned the basic concepts, you can work in any development environment.
I"ve stayed continuously employed through many technology "bubbles". Here is the secret. Don't think of the changing technology landscape as a series of bubbles. The ebb and flows where one technology becomes quite popular and then is replaced by something else IS what you do not something to be avoided. It is somethying you manage and enable. You need to think of yourself as a software engineer, not as a an "App developer", or a "Web developer"or a "Game Developer" or a U/I developer or whatever the fad of the day might be. You need to focus on being a superior engineer who is always keenly aware of where the trends are going. This is what great software engineers do. Great "Engineers" can build any type of application in whatever language and using whatever tools are available, but mostly they give guidance to people that are merely "Developers". Great "Developers" build one type of application or another and are usually replaced by someone cheaper and younger when the area that they are experts in becomes less important.
Choose what you want to be first 1) A Developer. 2) An Engineer
I highly recommend you give a lot of thought to the difference. The people that make decisions about whether they hire you, fire you, pay you more or less surely do. This is 25 years of experience speaking.
You'll be fine if you went to school to learn how to program and didn't go to school to learn a particular language. As long as you know how to apply data structures, modularize/structure programs, and other generalized coding practices to other languages you'll be fine. A language does have a slight learning curve but if you've programmed in general you'll be able to easily apply your knowlege to any language. i.e. You'll be able to transfer your skills to another job fairly easily. You should be able to easily program in C, C++, JAVA, Matlab, etc. with no headaches. Scipting should be even easier.
Keep in mind though that experience is also helpful for getting used to your tools -- IDEs, version control, documentation (which is also VERY important), etc.
There are something like 1 Embedded person for every 1000 Web Developers. If you are good, you will always demand a good premium.
Consider switching majors while you can. Software development sucks as a career. Try to pick something that is higher prestige and is difficult to offshore. Most important though is to pick something where experience is valuable. When the tools and tech change every 5 to 8 years, the 50 year old guy with 5 years experience with the latest tech is actually worse than the 27 year old with 5 years experience with the latest tech, since the oldster's more expensive to employ (insurance, benefits) and probably can't be bullied to work 80 hours a week. Finally, programming is a dead end. The usual aspiration is to be a PM, which really just means being the report generator for the people with the real power - the people who hold the purse strings.
Seriously, the best thing to do is to rethink your career choice and fix your mistake while you are young.
No, I'm not. I'm saying AI *will* spread. When it does, it'll almost certainly require higher power hardware than we have now. But, inasmuch as AI is a future thing, and higher power hardware is a future thing, I'm implying they'll coexist.
So am I. There isn't any. Not yet.
Well, a possibility... but going by television, the public's appetite for the mediocre is unquenchable. So I'll withhold judgement on that until I see it.
Hmm. Guess I don't see it that way. I see it as a matter of economics, and again, apps will continue to be made, hardware will continue to power up, new types of apps will become practical, and so it will go on into the indefinite future. I don't really care about games, personally, though many do. I have all kinds of cool apps on my tablet, expect to add quite a few more before I have to upgrade the hardware, but I *do* know I'll have to upgrade at some point. That's just the way the tech ball rolls.
I've fallen off your lawn, and I can't get up.
Unless you live in Nordic countries, Japan or South Korea...
No, it is relevant, because I was talking about apps. Not computer software for desktops, but apps. They live on tablets, phones, televisions and the like. I described it clearly in that context, and then he tried to make a counterpoint by bringing up something I wasn't talking about at all. I explicitly described low core counts and small memory. Clearly I wasn't talking about desktops. The subject was apps. "Preparing for the 'App Bubble' To Pop?", remember?
And in the same spirit, here's a tip for you: Since we don't (yet) know how intelligence works (ours or any other means to accomplish it), there's no cause to be assigning it to a list of unsolvable problems, or to be slinging the idea around that clever software would have already got it done were it actually possible -- most of the time, you have to know what you're trying to do before you can do it. I'll allow that it could happen by accident, but I'm also pretty comfortable saying that it very probably won't. For instance, if you set out to program a means to rotate an arbitrary cartesian XYZ-by-N object, but you don't have the required trig to understand how rotation works, you're not likely to solve the problem. AI is likely to be like that, only far more challenging and may require more hardware resources than anyone presently has to throw at it. So as far as accidental solutions go... I really wouldn't bet that way.
So far, every indication is that the mechanisms involved in the hardware (ok, wetware) are mundane in the extreme, but that the whole is presently out of our reach in terms of sheer numbers of computational elements and related connectivity. Knowing that our hardware is advancing at a rather formidable rate, there is every reason to think that it will reach a level where it can do enough to accomplish the required tasks. With any luck at all, by then we'll figure out what those tasks are, and make a working analog or metaphor for them. Some parts of the problem are already solved, such as associative memory, speech output, speech input (somewhat), image acquisition and storage, touch, smell (somewhat), and other sensory areas that we don't have analogs for.
Unless someone suddenly discovers one or more completely new features of the brain that use fields and/or forces and/or materials we cannot model, solving this problem can reasonably be assumed to be inevitable. And frankly, as nothing like that has yet been found or even so much as hinted at, it is highly unlikely that it exists at all.
As long as the solution can be codified in the digital world, we really only have to solve the problem once. Making AI #2...n could be as simple as a few seconds of copy time. There's also something to be said for the fact that an intelligent answer is just as intelligent if rendered in a second, or in a minute. So it's going to be about achievable complexity, not so much speed.
I've fallen off your lawn, and I can't get up.
My question: is my background diverse enough that I don't have to worry about finding a job if all the predictions that the 'app bubble' will pop soon come true?
First thing: Don't be a one-trick ponny. Specifically, don't be the mobile-dev Doppelgänger of the many web-app-dev-only cookie cutter programmers and DoD-entrenched-dinosaurs out that exist out there.
Second thing: You are dabbling into Machine Learning, and that is good. Beyond that, your background seems diverse ... for mobile systems/app development as it exists now. Do you have a good grasp of web/enterprise development? Systems programming (OS kernel, drivers, network protocols)? You don't have to be an expert in any of these (no one can nor should when coming out of school) ,but you need to have a firm grasp of the essentials. It is something you get either through school or on your own (or a combination thereof.)
Your background needs to be diverse in the main topics, with sufficient dept in some core areas. If you don't have that, your background is not diverse. The more specific it is, the more vulnerable it makes you when bubbles go pop.
Is there another, similar area of programming that I should look into in order to have some contingencies in place if things go south?
What do you mean similar? The more similar that it is to that which you are referring to, the more that it might be vulnerable to bubble-popalypse aftermath.
Your studies in CS should provide you with some breadth of studies in areas of application and systems development.
My general interests and experience have so far been in mobile app development with Java and C++ (using the NDK), and some web development on both the client and server side. Thank you!"
These two give lots of space to wiggle. If you expand web development into some general knowledge enterprise, end-to-end development and the main technologies and architectures that go in there (.ie. web services, REST, SOA, RIA, RDBMSs, NoSQL), then you will open yourself up for more perennial opportunities.
You should also familiarize yourself well (or at least with the basics) with OS/kernel development. If I were you, and if I had the means to do so, I would postpone my studies an extra year just to do that (or go into a MS program and delve deep into these issues.) If I had a time machine, I would do that for my own career TBO. One more important thing, and something a lot of CS students miss, is that their junior and senior years are the times to cultivate networks and to aggressively pursue internships at a software development/engineering firm (avoid Banking/Finance institutions, or anything that is not an engineering-oriented firm.)
Aim high and aggressively. Be versatile, adjustable and resilient. These traits will help you survive bubble bursts far more than knowledge of a development stack.
You know, more than worrying about an app bubble, if I were you I would be more concerned that you've choosen to to be in a pretty specific niche of the programming world. I know that the company I'm working at CTO for, specifically picked a tool and platform where we can keep a single code base for our mobile application, rather than keep two independent natively programmed version to maintain. Granted this does put some limitations on some of the more involved functionality, but that gap is getting smaller and smaller. Solutions like Appcellorator Titanium and PhoneGap are becoming more and more a better overall solution to having a mobile application presence. Even the new Zend Studio IDE has mobile development built into it and HTML 5 will make a pretty big impact on non-native mobile applications, but take a big chunk of the mobile application pie. Then you also have to consider the small share that Blackberry has, and if things get really ugly and Windows 8 actually catches on by the lessor inclined user base, I believe it makes companies less inclined to program native applications. Any programming language is just another abstraction layer to get into executable binary, whether it's C or PHP or Javascript for that matter, it's just a construct that gets compiled down - since machine code is no fun to program in. As mobile OS platforms are shifting and fighting for presense, I believe you'll find the natively programmed application being produced less using the actual native language code platform.
I think the question that you should be asking yourself, is can you diversify yourself to work on more than just mobile applications. With the battle over Java far from over, and Oracle and IBM teaming up to develop a closed source Java branch and the further splintering of core C libraries being adopted, the very foundation upon which your putting everything into is shaky at it's very foundation. I'm not saying that Java or C# are going to simply die off one day, but I also don't believe these are the future of programming (at least not for the mobile world). It may be wise to perhaps branch out beyond just the mobile world and do some projects that say have a mobile side and desktop side, which will expand your skills into the desktop area as well. This way you'll have something to fall back on should something happen in the mobile area, which is sort of a world unto itself.
While mobile applications are a bit of a fad and the latest craze being eaten by the masses, I don't see it bursting like the Internet bubble did. Mobile applications are a product of user demands and technology advancements, and less by banking mongers selling straw as gold. I believe there will be plenty of work in that market for a long time, although as mentioned above, that context may change to solutions that address all the growing diversification. Being a programmer and picking the right languages to program in are just as important as being good at what you program in. Just ask any Cobalt or Fortran engineer. lol
Don't worry about it. You will end up working in a completely unrelated field and rarely use your degree for anything past Facebook arguments.
And when phones do get more horsepower they tend to use it to make the UI operate more smoothly rather than use the CPU to actually do real work. Most phone apps tend to just talk over the net to some servers to let them do the real work.
There are multiple movements creating dev jobs.
Mobility and apps is one.
Cloud and virtualization is another.
Testing with developers who write automated tests is a third.
Business developement in IT is a fourth.
So sure, one bubble might pop, but not all the jobs are in that bubble.
The only thing limiting apps right now is small memory and slowish, low core-count processors.
As the pads and phones continue to power up, there will be a market for more and more serious software (and we'll begin to see a real desktop instead of this freakish abomination with 20 apps / drawer and no nested drawers and no app to app data sharing.)
Pads and phones are really in their infancy. I can think of a huge long list of additional capabilities that have yet to hit the market, and a whole bunch of potential apps that can't run there -- yet -- because the hardware is still too anemic.
When your pad or phone has 16 cores running at 3 ghz, a decent ultracap power supply, 64 gb of ram... you'll look at that "app bubble" statement the same way we look at what the head of the patent department in the early 1900's was saying when he declared something along the lines of "everything important has already been invented", or the famous "no one needs more than 64k (or was it 640? Can't be bothered, both are equally ridiculous.)
...and say "OK, smartphones and tablets are now complete replacements for desktops/notebooks, and the market for smartphone/tablet applications is like the market for desktop/notebook applications, so, instead of several million 0.99{dollar,euro,etc.} applications a lot of which are tiny games or replacements for browser windows, we have a much smaller number of applications that cost more and are actually worth that higher cost." That won't necessarily be a market in which everybody and their brother can go whip up an app and make money off of it....
Just make sure your basement wallpaper is diverse enough. You're going to be living with it for a long time.