Archive for May 2014
There exist a lot of mobile app development frameworks. Cross-platform tools reduce barriers to entry and democratise app development, by allowing developers from any language (HTML, Java, C++), any background (hobbyist, pros, agencies, corporates) and any skill level (visual designer to hard-core developer) to build mobile apps. Just imagine that by using a cross-platform tool and covering just two platforms such as Android and iOS, you will cover 91% of the whole smartphone market. Sounds appealing:)
PhoneGap and Sencha are the most widespread: they are used by 32% and 30% of cross-platform developers, irrespective of their primary tools. I`m suggesting to have a closer look at PhoneGap which turns to be the most popular tool.
How it works
-The most obvious one is cross-platform capabilities. Currently PhoneGap supports the following platforms: iOS, Android, webOS, Windows Phone, BlackBerry, Symbian OS, Tizen.
-Adjustments can be performed via browser; remote adjustments can be performed on a mobile device via “weinre”.
A blot on the landscape:)
– Users feel uncomfortable when touching a button and it doesn`t work. This is one of the most widespread bugs in PhoneGap apps. This bug appears due to improperly created interface, and it raises the problem of touching. The fact is that we look at the touchscreen at an angle and the visual contact area between the finger and the screen differs from the real contact area. This can be corrected quite simply – proper layout of the app page. For example, the area of response can be made bigger than the button itself.
-Nevertheless this is a cross-platform tool, UI should be optimized for different platforms. But it’s much faster, than creating another native app from scratch;
As you can see, these drawbacks are not quite ‘drawbacks’ in their nature, but rather technical conditions of PhoneGap, which you should consider, like in a usual development process for any other platform.
Certainly, PhoneGap is not a “miracle cure” but can be a good way out if wisely used. And what are your thoughts on PhoneGap?
The IT sector is flourishing. If you’ve used a computer for at least a couple of times in the last few years, you’ve probably noticed this. I’ve noticed it myself even more after a business trip to Stockholm where I was lucky to attend some conferences and learnt more about Swedish IT industry tendencies. These tendencies reflect our life in general. Life changes rapidly with new technologies bursting into it. And when it comes to programming languages, we get a chance to see very different trendy styles. Programming languages which were popular some years ago are not useful today. And no one can exactly predict which programming language will be popular in future. That’s why a programmer who wants to stay in developer fields has to adopt the right programming language from time to time.
As the Swedish software maker Erik Starck pointed out, “programming is about managing complexities”. And it’s really so. An understanding of at least one programming language makes an impressive addition to any CV nowadays.
It is also very difficult to get the exact number of users for any programming language. Many of us use multiple programming languages. The more experience you have, the more programming languages you use. The more programs you write or work with, the chances of using more languages rise. The larger the company, the more languages you’re likely to use.
There are a number of ways to measure the popularity of a programming language, for example, based on the number of: 1) new applications written in the language; 2) existing applications written in the language; 3) developers that use the language primarily; 4) developers that use the language ever; 5) web searches; 6) available jobs that require skills in the language; 7) developers’ favorites, etc.
My survey attempts to rank which programming languages are most popular in Sweden, each using a different measure. So, they are the following:
Python is an object-oriented programming language which allows developers to work quickly while integrating their systems more efficiently and effectively. Designed by Guido van Rossum in 1991, Python is one of the most easy to use programming languages.
Python is characterized by its use of indentation for readability, and its encouragement for elegant code by making developers do similar things in similar ways.
Top Employers: Amazon, Dell, Google, eBay, Instagram, Yahoo
Java is a class-based, object-oriented programming language founded by Sun Microsystems in 1995. Java is one of the most in-demand programming languages today for many reasons. First of all, it is a well-organized language with a strong library of reusable software components. Secondly, programs written in Java can run on many different computer architectures and operating systems because of the use of the JVM (Java virtual machine).
Top Employers: Amazon, Deloitte, Sun, eBay, Symantec Corporation, Cisco Systems, Samsung
C++ is a compiled, multi-paradigm language written as an update to C in 1979 by Bjarne Stroustrup.
Due to its high-level compatibility and object-orientation, C++ is used for developing a wide-range of applications and games which makes it a popular and sought after programming language by the employers.
Top Employers: Intel, the Math Works, Microsoft, Qualcomm, Amazon, Mozilla, Adobe, Volvo
Ruby is an open source, dynamic programming language designed by Yukihiro Matsumoto in 1995 with a key focus on productivity and simplicity .It is one of the most object-oriented languages in the world.
Ruby is a mix of elegant syntax which is easy to read and write and hence it has attracted many organizations and developers.
Top Employers: Spokes, VMware, Accenture, Cap Gemini, Siemens, BBC, NASA
Top Employers: Microsoft, Sales Force, IBM, Yahoo, Dell
C# is a compiled, object-oriented language developed by Microsoft.
It is highly used on Windows platform and labelled as the premium language for Microsoft .NET framework. C# is known for strong typing, procedural and functional programming discipline which is the reason it has acquired so much popularity.
Top Employers: Microsoft, HP, Digi-Key Corporation, Allscripts, Intel
Those are the top 6 programming languages which are in great demand among Swedish developers.
And one more thing: remember that opinions are like noses, everyone has one and they all smell 😉 If you disagree, please feel free to email me or write your own opinions in the comments.
Business Development Manager
Professional Software Development
- Ideal for complex “client-side” applications, where the complexity is more in a way “components” of an application interacts with each other than in a way they synchronise and/or interact with backend
- Very clear separation of concerns
- Uses concepts that kind of look like the future of HTML/DOM (DOM templates, binding attributes).
- A bit complicated to grasp. A lot of new concepts
- jQuery or another dom parsing framework in directives may be painful to use because of the way angular compiles templates
- Good for application with a big level of complexity on the client side, but you’ll have to learn a lot of new stuff.
On the whole, AngularJS is a robust and viable framework for building generic web apps. Whether it lives up to the expectations of being the most dominant JS framework for web development is yet to be seen.
Backbone came out in June 2010, and its community is nearly as large as Angular’s. Many popular applications such as Twitter, LinkedIn Mobile and Foursquare use Backbone framework. Also a number of music apps were built with Backbone, including well-known Pandora, Soundcloud and Pitchfork.
If you’re working on a single-page application or widget and you’re comfortable with being a self-starter—Backbone is likely the right choice for you.
- Very easy to start with
- Very small
- Free to use any templating engine
- A lot of excellent documentation
- Good Community Support
- Very popular (According to Github, Stackoverflow statistics)
- Very flexible in how you may want to use it
- Minimalist library
- Easy to learn
- No two way data-binding
- Dependency on different frameworks like jQuery and Underscore
- No provision for handling nested views
- More work required to build large scale applications as compared to Angular or Ember
- Code can become messy
- DOM manipulations are left to the developer
- Performs slower than AngularJS
Ember is the newest of the three, but it’s already making waves. LivingSocial, Groupon, Zendesk, Discourse and Square are some of the most well-known applications that have adopted Ember. Ember’s creators say it’s easy to see when a site is using Ember because of its loading speed.
Ember’s library size and support network are its two greatest strengths, but if you’re only trying to create a small widget or single-page app, it might be overkill for you. If you’re working on a multipage, navigational, long-term project, Ember might be the right choice for you.
- Good for long running and complex applications with deep nested view hierarchies
- Aggregates model data changes and update the DOM late in the RunLoop
- Well defined models and computed properties
- Use HandleBars as templating which is flexible
- Provides auto updating computed properties
- Test driven
- Relatively new framework
- Steepest learning curve out of the three
- Payload is the largest out of all three
- Dependency on jQuery and Handlebars
- Poor performance as compared to AngularJS
- Documentation is not very good
- Two way bindings are not implemented well