|By Simeon Simeonov||
|May 9, 2007 09:15 PM EDT||
I’ve been around software for 20 years now. Looking back, I have mixed feelings about the progress we’ve made. The end results have been amazing but the process of building software hasn’t fundamentally changed since the 80s. In fact, I see us make some of the same mistakes over and over again. One of the common anti-patterns is over-relying on tools and frameworks instead of inventing new programming models.
Layers of abstraction are fundamental to software. Some layers are defined through programming models, e.g., machine language, assembly language, 3GLs, JSP. Others are defined through a combination of tools and frameworks, e.g., MFC and Visual Studio on top of C++. There is a limit to how high we can raise a level of abstraction through tools and frameworks alone. At some point, a new programming model is the best way forward.
Here are some examples: CASE tools on top of 3GLs never achieved the success of 4GLs; tools and frameworks for Web application development, from CGI + your favorite language to WebObjects to HAHT, were demolished in the market by page-based Web application development models such as ColdFusion, PHP, JSP and ASP.
What we have seen time and time again is that it is often better to come up with a new programming model than to keep pushing an existing model forward by throwing ever more advanced tools and sophisticated frameworks on top. Think of a building. Programming models are the floors. Tools and frameworks are the walls. To build a tall building you need to strike a balance between the number of floors and the height of walls. Beyond a certain point, an extra foot of room height adds very little to the quality of a room but increases the cost of the building substantially.
When should one create a new programming model as opposed to go with a framework and/or tool leverage? What is a programming model anyway? Tough questions, both of them… The first is impossible to answer perfectly or quickly. The second question is a little easier because you can often recognize a new programming model when you see it. One key observation is that you don’t necessarily need a new programming language, as JSP and ASP demonstrate. Sometimes, it is sufficient to create a domain-specific template or wrapper into which existing programming models fit. Also, new programming models may come with their own set of frameworks and tools.
I have some first-hand experience creating new programming models. At Allaire we defined the page-based Web application development model with ColdFusion and later helped the Java community get its act together with JSP and tag libraries. Later at Macromedia, we defined the model for building rich Internet applications (RIAs) with Flash and Flex, something Microsoft will try to catch up to with Avalon in Longhorn (now Windows Vista). In between, we did a lot of work on SOA programming models, though with the burst of the tech bubble we decided not to ship this as an independent product but instead contributed the ideas to Apache and to existing products internally.
Here are some thoughts on two programming models that I hope we can significantly improve in the next few years.
Rich Internet Applications (RIAs)
You have to admit, we did take a step back in usability with the Web. We can build easily accessible applications quickly, but wouldn’t it be nice if we didn’t have to go through 10 screens to make an airline reservation?
What we need are applications that have the deployment characteristics of browser-based applications but have equivalent power and more interactivity than desktop applications. That’s what RIAs are all about. They bring complexity on two levels. First, computing happens on both the client and the server over a potentially unreliable WAN. Second, they aim to deliver highly interactive user experiences (UEs). Don’t blow that second requirement off. Research clearly shows that users respond better to these types of interfaces. Who wants to use old-style Web maps when you can go with Google maps or the Flash-based AbMap?
A good RIA programming model will protect developers from the details of location, i.e., the tasks associated with synchronizing data shared between the front- and back-end, invoking back-end services, dealing with online/offline operation, etc. It will also have an advanced rendering engine, preferably one that is cross-platform and device independent, and a presentation model that hides much of the hassle of resolution, screen orientation and internationalization. I’m very biased in making this claim but the only commercially sound approach to RIAs nowadays is with Macromedia Flash and, better, with Flash and Flex together. Microsoft Avalon is the closest competing technology. It has yet to ship. AJAX, contrary to what many believe, has been around since at least 1998 but didn’t have a cool acronym. AJAX + DHTML offer an alternative but there has been little success moving from specific cool apps to a generalized programming model. Java doesn’t cut it, primarily for UE reasons. There is plenty of room for improvement.
Don’t forget mobile applications. More than PC-based applications, they really need a makeover and there are a lot of dollars at stake. Microbrowsers are trying to find ways to bring AJAX + DHTM ± WAP to devices. Java has deep market penetration but poor UE. Brew has the best device integration but is similar to Java on the UE front. Flash Lite is gaining traction here because of the great UE it enables.
There is no question about it - you can build composite applications using Java, .NET or any other programming language for that matter, just as you can build Web apps using C++ and write admin scripts in Cobol. Why would you, though?
One of the cornerstones of SOA is that services can be implemented using anything. That’s great but traditional approaches for writing the glue code between services leave a lot to be desired. What we need are deeper and more declarative mechanisms for putting services together. BPEL and the WS-* standards are both too much and not enough. Do this: print all the specs and stack them together. Now, think about how much ad hoc work you had to do to build, deploy and operate your last composite app. Do you feel comfortable with where the industry is going?
Building, deploying and operating composite applications requires dealing with issues such as policy definition and enforcement, service evolution/versioning, system/deployment architectures and post-deployment management and monitoring. This goes into what traditionally has been considered to be the IT sphere of influence, often a taboo area for development. However, I deeply believe that a winning programming model has to begin to address these issues. Just consider some of the complexities. How do you maintain applications over time as services evolve? How do you debug them? When something doesn’t work right in a production application, how do you track down the root cause? If you don’t address these issues during the architecture and design phases you’re in for pain down the road.
Talk like this takes us into the realm of utility computing, whatever that means (definitions still vary). Perhaps this is what’s necessary to make building, testing, deploying and operating composite applications easy. There is plenty of innovation in this space. Unfortunately, much of it is in the form of add-on products as opposed to a comprehensive programming model-driven approach to the problem. This is bad news for customers who run the risk of experiencing the dubious pleasures of vendor lock-in.
My personal wish list for innovative programming models is longer, for example, covering ultra-scalable applications that run on large clusters (>= 32 nodes). I even think that we can do a lot better with the decade-old Web application model. Just look at some of the work going on with Ruby on Rails. As both a technologist and an investor I’m excited about the future.
|David Ryan 08/12/05 07:48:08 PM EDT|
Nice article. I've linked to some articles which you might find interesting. It includes a paper I prepared on creating evolvable programming languages encoded in a binary format called Argot. The language is still in early development, but I strongly believe that solutions similar to it is where future languages need to move.
|grumpynerd 08/11/05 02:10:24 PM EDT|
I won't discount the importance of Ajax and "RIAs" as a deployment model -- even as a kind of domain within in which system architectures could be grouped. But these aren't new programming models. We use the same old programming models to build new kinds of apps.
Examples of Programming Models:
|Mark Kroehler 08/11/05 02:08:19 PM EDT|
RIA (Rich Internet Applications) is a marketing term Macromedia (Flash, Cold Fusion) conjured up as a way to get people looking at their development products. Even googling on the term only points you back to one vendor. Not exactly what I would call a model...
|boatboy 08/11/05 08:59:41 AM EDT|
Avalon != Ajax. Avalon will be a system for declaratively defining a rich ui. The design will presumably allow for what is called a RIA here, but isn't limited to that. More analogous is Microsoft's 'Atlas' - which will probably be released much sooner, and be more cross-platform.
|swamii 08/11/05 08:22:11 AM EDT|
>>> Microsoft will try to catch up to with
Late != unsuccessful. It matters little when Microsoft controls the browser and the operating system. They could start deploying RIAs (Avalon web apps) tomorrow and have broad support for it in the browser and OS if they wanted.
One thing's for sure: I have yet to see a web UI framework look as good as Avalon web apps. Aeroglass over the web looks great. I wonder how well it will be accepted by the public.
|owlstead 08/11/05 08:19:02 AM EDT|
Better runtime environments and IDE's will be more important than any programming language. The way Java or .NET handle components should be an eye opener. What you want is code you can control, what does what you expect it to do.
On the runtime part:
On the IDE part:
I see a mayor shift towards runtime technologies coming up ahead. I can see more flexibility coming up in how programs are run and objects are used. Compilers are already running in the background to use Java both as script and as compile time language, for instance. Java may be to strict on some issues however.
For programs, components, OO and the imperative model will probably be here to stay. Other languages will be used for their respective domains, but the language wars seem to be over for now (as each programming language looks more and more like its siblings). Lets focus on the runtime and supportive technologies. And getting the things running reliably, for crying out loud.
I don't think using multiple languages that try to accomplish the same thing is such a good idea (see .NET C++, C#, VB7 and J#). You end up learning all of them (see MSDN). Mixing with languages that use other programming paradigms could be usefull though.
|gravyface 08/11/05 08:17:43 AM EDT|
ColdFusion got it right a long time ago. Sure, its a commercial platform, but being able to leverage C/C++, Java, and .NET and of course AJAX and Flash through simple, tag-based markup, really speeds things up. It can run on any major platform too.
|Jean-Luc Fontaine 08/11/05 03:08:50 AM EDT|
I am amazed at the complexity level that you are writing about, when there has been thin clients (X Windows, ...) for a long time, and now NX which has the greatest of potentials. Investing in the network instead of redeveloping your applications is so much more efficient and cost effective!
|Jeremy Pereira 08/10/05 05:39:37 PM EDT|
Your web site truly sucks. I'm sure the story is great, but the audio multimedia which is on by default just makes me want to hit the back button straight away. All the animated adverts distract from the content too.
PS the e-mail address is a real one in spite of the gratuitously insulting user name :)
|Colonel Panic 08/10/05 05:18:08 PM EDT|
I guess when I think of 'models of programming' I think about things like Object Oriented or Functional programming categories. This article seems to confuse the idea of 'models of programming' with actual types of applications: desktop vs. Web apps or perhaps a fusion of the two. Now one could program either a desktop or web app (or an RIA) using either an Object-Oriented approach, declarative, functional or even a combination of them. Let's not confuse the application with the programming model (or perhaps programming metaphor would work here?)
If the question is what will the next model of programming be (beyond the current reigning Object Oriented model) then the answer could probably lie in the direction of Aspect Oriented Programming. RIA's may be implemented usian an AOP approach, but I don't think it's right to say that RIA's will be the new programming model. RIA's may be the new application model.
|Sv-Manowar 08/10/05 05:14:16 PM EDT|
The trend towards RIA's/webapps has traditionally been restricted to those in a database centric role, but with the increasing use of AJAX and the like, the webapp is pushing further into the desktop application space. Obviously the centralization and server-side nature of the applications helps deployment and maintainance, but developers are basically trading the platform of an operating system for the platform of a web browser, with all the intricacies and compatibility issues that follow both.
|ThinkTiM 08/10/05 04:48:50 PM EDT|
RIA is not a programming model. RIA is more of a type of architectural pattern...it is definately not a programming model like modular programming, object oriented programming, etc... Although I guess "programming model" could mean just about anything.
The author of the article should not have mixed something very specific ("framework") with something very general ("programming model").
|TeknoHog 08/10/05 04:46:34 PM EDT|
>>> What we need is a parallel programming
These have been around for ages, but mainly for scientific computing. For example Fortran 90 and later versions, but there are also variants of C++ and others. Usually they take advantage of obvious parallelity in the data, for example matrix multiplication, and make the processors handle the separate bits without bothering the programmer with threads etc. It's also the kind of computation that takes place in graphics cards with their multiple pipelines.
I don't see any easy way to do the same for general programming. For example, separate threads for user interface and the actual processing is a good idea, but a very high-level one, not the kind of thing that would be done automatically by a compiler.
I hope that the existing parallel programming languages would be more widely used for the computationally intensive parts. It seems so silly that home computers have focused on pushing single processor performance for all this time, while 'real computer science' has been reaping the benefits of parallel processing for years.
|lheal 08/10/05 04:44:56 PM EDT|
I'm pretty sure it will never be the rage, but I like Programming Language Oriented Programming for difficult problems that don't seem doable in C/++ or something similar.
Most programs can be written practally in most languages, since all you really need is "if", "decrement" and "goto". Some problems aren't a good fit for a given language. That's why there's more than one.
Any program that breaks its problem into chunks is in effect creating its own mini-language. Whether you call it Abstact Data Typing or Object Orientation or Functional Programming or even Top Down Design, what it comes down to is dividing the problem into manageable chunks and working with those chunks until done.
I wish all CS students were taught from day one, or maybe day fifteen, how to create their own programming language. Usually you have to take a compilers course to get that.
Creating a new language is not that hard. It gets a bad rap because people think they have to write a backend for a given architecture, but writing the backend to generate C++ or some other HLL is just as good, since they've already done the heavy lifting and you can automate the compile train with your favorite maker.
|an0n 08/10/05 04:41:30 PM EDT|
The best programming models are the ones from the past, as usual. Lisp, Forth, these languages created a community of best-practices that we are all reinventing all over again.
Ruby on Rails is great, not because it's something NEW, but because it wraps up all these best practices with a friendly face.
Creating simple domain-specific languages is how talented programmers do things already, with powerful languages like Lisp. However languages like PHP, Python, Java, TOOK AWAY this ability because language designers thought it was "unnecessary" or "too complicated" for the average programmer.
Along comes Ruby, which gives you back some of that power. And a talented programmer took it and "did the right thing" by creating a tight domain-specific language. Now everybody is so excited. Great, whatever makes programs simpler and more expressive is fine by me.
But can we please stop talking about the "next" great thing, when hardly anybody remembers the great things from the past?
If there's any problem in this industry, it's that programmers have ZERO knowledge of fundamentals. Instead of standing on the shoulders of giants, they constantly re-invent wheels.
|moultano 08/10/05 04:21:50 PM EDT|
Functional programming is awesome, and I'm thoroughly convinced that it will take over just about everything its feasible for it to take over. There is nothing like the feeling of writing a program, having it type check, and not having to test it because you can look at the code and tell that it proves its own correctness.
|charlie 08/10/05 03:05:48 PM EDT|
The current generation of SOAs, based on W3C web standards, are client-server centric with a reliance on domain name based URLs. This fails for many obvious reasons.
The next gen solves this by working outside of the box and introducing a disruptive technology based on a new model that gives location independence, transport independence, and even application independence (ie., reuse existing GUI-based applications without need to retool).
|UE-boy 08/06/05 04:41:33 AM EDT|
>>>>rich Internet applications (RIAs) ... something Microsoft will try to catch up to with Avalon in Longhorn (now Windows Vista).
But they are 2 years behind surely? Vista can't become the de facto standard for desktop apps, it's too late. Flash 8 has stolen its thunder - Avalon as the new UI for Windows...I just don't believe it any more.
Software AG helps organizations transform into Digital Enterprises, so they can differentiate from competitors and better engage customers, partners and employees. Using the Software AG Suite, companies can close the gap between business and IT to create digital systems of differentiation that drive front-line agility. We offer four on-ramps to the Digital Enterprise: alignment through collaborative process analysis; transformation through portfolio management; agility through process automation and integration; and visibility through intelligent business operations and big data.
Sep. 30, 2014 10:30 AM EDT Reads: 1,273
There will be 50 billion Internet connected devices by 2020. Today, every manufacturer has a propriety protocol and an app. How do we securely integrate these "things" into our lives and businesses in a way that we can easily control and manage? Even better, how do we integrate these "things" so that they control and manage each other so our lives become more convenient or our businesses become more profitable and/or safe? We have heard that the best interface is no interface. In his session at Internet of @ThingsExpo, Chris Matthieu, Co-Founder & CTO at Octoblu, Inc., will discuss how these devices generate enough data to learn our behaviors and simplify/improve our lives. What if we could connect everything to everything? I'm not only talking about connecting things to things but also systems, cloud services, and people. Add in a little machine learning and artificial intelligence and now we have something interesting...
Sep. 29, 2014 06:45 AM EDT Reads: 1,814
Last week, while in San Francisco, I used the Uber app and service four times. All four experiences were great, although one of the drivers stopped for 30 seconds and then left as I was walking up to the car. He must have realized I was a blogger. None the less, the next car was just a minute away and I suffered no pain. In this article, my colleague, Ved Sen, Global Head, Advisory Services Social, Mobile and Sensors at Cognizant shares his experiences and insights.
Sep. 28, 2014 09:45 AM EDT Reads: 1,493
We are reaching the end of the beginning with WebRTC and real systems using this technology have begun to appear. One challenge that faces every WebRTC deployment (in some form or another) is identity management. For example, if you have an existing service – possibly built on a variety of different PaaS/SaaS offerings – and you want to add real-time communications you are faced with a challenge relating to user management, authentication, authorization, and validation. Service providers will want to use their existing identities, but these will have credentials already that are (hopefully) irreversibly encoded. In his session at Internet of @ThingsExpo, Peter Dunkley, Technical Director at Acision, will look at how this identity problem can be solved and discuss ways to use existing web identities for real-time communication.
Sep. 27, 2014 11:30 PM EDT Reads: 1,840
Can call centers hang up the phones for good? Intuitive Solutions did. WebRTC enabled this contact center provider to eliminate antiquated telephony and desktop phone infrastructure with a pure web-based solution, allowing them to expand beyond brick-and-mortar confines to a home-based agent model. It also ensured scalability and better service for customers, including MUY! Companies, one of the country's largest franchise restaurant companies with 232 Pizza Hut locations. This is one example of WebRTC adoption today, but the potential is limitless when powered by IoT. Attendees will learn real-world benefits of WebRTC and explore future possibilities, as WebRTC and IoT intersect to improve customer service.
Sep. 27, 2014 10:30 PM EDT Reads: 1,771
From telemedicine to smart cars, digital homes and industrial monitoring, the explosive growth of IoT has created exciting new business opportunities for real time calls and messaging. In his session at Internet of @ThingsExpo, Ivelin Ivanov, CEO and Co-Founder of Telestax, will share some of the new revenue sources that IoT created for Restcomm – the open source telephony platform from Telestax. Ivelin Ivanov is a technology entrepreneur who founded Mobicents, an Open Source VoIP Platform, to help create, deploy, and manage applications integrating voice, video and data. He is the co-founder of TeleStax, an Open Source Cloud Communications company that helps the shift from legacy IN/SS7 telco networks to IP-based cloud comms. An early investor in multiple start-ups, he still finds time to code for his companies and contribute to open source projects.
Sep. 27, 2014 10:30 PM EDT Reads: 2,242
The Internet of Things (IoT) promises to create new business models as significant as those that were inspired by the Internet and the smartphone 20 and 10 years ago. What business, social and practical implications will this phenomenon bring? That's the subject of "Monetizing the Internet of Things: Perspectives from the Front Lines," an e-book released today and available free of charge from Aria Systems, the leading innovator in recurring revenue management.
Sep. 27, 2014 09:45 PM EDT Reads: 2,422
The Internet of Things will put IT to its ultimate test by creating infinite new opportunities to digitize products and services, generate and analyze new data to improve customer satisfaction, and discover new ways to gain a competitive advantage across nearly every industry. In order to help corporate business units to capitalize on the rapidly evolving IoT opportunities, IT must stand up to a new set of challenges.
Sep. 27, 2014 08:45 PM EDT Reads: 2,308
There’s Big Data, then there’s really Big Data from the Internet of Things. IoT is evolving to include many data possibilities like new types of event, log and network data. The volumes are enormous, generating tens of billions of logs per day, which raise data challenges. Early IoT deployments are relying heavily on both the cloud and managed service providers to navigate these challenges. In her session at 6th Big Data Expo®, Hannah Smalltree, Director at Treasure Data, to discuss how IoT, Big Data and deployments are processing massive data volumes from wearables, utilities and other machines.
Sep. 27, 2014 01:00 PM EDT Reads: 1,995
All major researchers estimate there will be tens of billions devices – computers, smartphones, tablets, and sensors – connected to the Internet by 2020. This number will continue to grow at a rapid pace for the next several decades. With major technology companies and startups seriously embracing IoT strategies, now is the perfect time to attend @ThingsExpo in Silicon Valley. Learn what is going on, contribute to the discussions, and ensure that your enterprise is as "IoT-Ready" as it can be!
Sep. 27, 2014 11:00 AM EDT Reads: 2,128
P2P RTC will impact the landscape of communications, shifting from traditional telephony style communications models to OTT (Over-The-Top) cloud assisted & PaaS (Platform as a Service) communication services. The P2P shift will impact many areas of our lives, from mobile communication, human interactive web services, RTC and telephony infrastructure, user federation, security and privacy implications, business costs, and scalability. In his session at Internet of @ThingsExpo, Erik Lagerway, Co-founder of Hookflash, will walk through the shifting landscape of traditional telephone and voice services to the modern P2P RTC era of OTT cloud assisted services.
Sep. 26, 2014 11:45 PM EDT Reads: 1,475
While great strides have been made relative to the video aspects of remote collaboration, audio technology has basically stagnated. Typically all audio is mixed to a single monaural stream and emanates from a single point, such as a speakerphone or a speaker associated with a video monitor. This leads to confusion and lack of understanding among participants especially regarding who is actually speaking. Spatial teleconferencing introduces the concept of acoustic spatial separation between conference participants in three dimensional space. This has been shown to significantly improve comprehension and conference efficiency.
Sep. 26, 2014 10:45 PM EDT Reads: 1,414
The Internet of Things is tied together with a thin strand that is known as time. Coincidentally, at the core of nearly all data analytics is a timestamp. When working with time series data there are a few core principles that everyone should consider, especially across datasets where time is the common boundary. In his session at Internet of @ThingsExpo, Jim Scott, Director of Enterprise Strategy & Architecture at MapR Technologies, will discuss single-value, geo-spatial, and log time series data. By focusing on enterprise applications and the data center, he will use OpenTSDB as an example to explain some of these concepts including when to use different storage models.
Sep. 26, 2014 07:45 PM EDT Reads: 2,248
SYS-CON Events announced today that Gridstore™, the leader in software-defined storage (SDS) purpose-built for Windows Servers and Hyper-V, will exhibit at SYS-CON's 15th International Cloud Expo®, which will take place on November 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA. Gridstore™ is the leader in software-defined storage purpose built for virtualization that is designed to accelerate applications in virtualized environments. Using its patented Server-Side Virtual Controller™ Technology (SVCT) to eliminate the I/O blender effect and accelerate applications Gridstore delivers vmOptimized™ Storage that self-optimizes to each application or VM across both virtual and physical environments. Leveraging a grid architecture, Gridstore delivers the first end-to-end storage QoS to ensure the most important App or VM performance is never compromised. The storage grid, that uses Gridstore’s performance optimized nodes or capacity optimized nodes, starts with as few a...
Sep. 26, 2014 06:15 PM EDT Reads: 1,595
The Transparent Cloud-computing Consortium (abbreviation: T-Cloud Consortium) will conduct research activities into changes in the computing model as a result of collaboration between "device" and "cloud" and the creation of new value and markets through organic data processing High speed and high quality networks, and dramatic improvements in computer processing capabilities, have greatly changed the nature of applications and made the storing and processing of data on the network commonplace. These technological reforms have not only changed computers and smartphones, but are also changing the data processing model for all information devices. In particular, in the area known as M2M (Machine-To-Machine), there are great expectations that information with a new type of value can be produced using a variety of devices and sensors saving/sharing data via the network and through large-scale cloud-type data processing. This consortium believes that attaching a huge number of devic...
Sep. 26, 2014 06:00 PM EDT Reads: 1,523
Innodisk is a service-driven provider of industrial embedded flash and DRAM storage products and technologies, with a focus on the enterprise, industrial, aerospace, and defense industries. Innodisk is dedicated to serving their customers and business partners. Quality is vitally important when it comes to industrial embedded flash and DRAM storage products. That’s why Innodisk manufactures all of their products in their own purpose-built memory production facility. In fact, they designed and built their production center to maximize manufacturing efficiency and guarantee the highest quality of our products.
Sep. 26, 2014 05:00 PM EDT Reads: 1,525
All major researchers estimate there will be tens of billions devices - computers, smartphones, tablets, and sensors - connected to the Internet by 2020. This number will continue to grow at a rapid pace for the next several decades. Over the summer Gartner released its much anticipated annual Hype Cycle report and the big news is that Internet of Things has now replaced Big Data as the most hyped technology. Indeed, we're hearing more and more about this fascinating new technological paradigm. Every other IT news item seems to be about IoT and its implications on the future of digital business.
Sep. 26, 2014 10:00 AM EDT Reads: 2,010
Can call centers hang up the phones for good? Intuitive Solutions did. WebRTC enabled this contact center provider to eliminate antiquated telephony and desktop phone infrastructure with a pure web-based solution, allowing them to expand beyond brick-and-mortar confines to a home-based agent model. Download Slide Deck: ▸ Here
Sep. 26, 2014 10:00 AM EDT Reads: 1,478
BSQUARE is a global leader of embedded software solutions. We enable smart connected systems at the device level and beyond that millions use every day and provide actionable data solutions for the growing Internet of Things (IoT) market. We empower our world-class customers with our products, services and solutions to achieve innovation and success. For more information, visit www.bsquare.com.
Sep. 26, 2014 09:45 AM EDT Reads: 1,370
With the iCloud scandal seemingly in its past, Apple announced new iPhones, updates to iPad and MacBook as well as news on OSX Yosemite. Although consumers will have to wait to get their hands on some of that new stuff, what they can get is the latest release of iOS 8 that Apple made available for most in-market iPhones and iPads. Originally announced at WWDC (Apple’s annual developers conference) in June, iOS 8 seems to spearhead Apple’s newfound focus upon greater integration of their products into everyday tasks, cross-platform mobility and self-monitoring. Before you update your device, here is a look at some of the new features and things you may want to consider from a mobile security perspective.
Sep. 26, 2014 09:00 AM EDT Reads: 1,357