Browse DevX
Sign up for e-mail newsletters from DevX


The Late but Great Rearchitecture of DevX

DevX has a new back end management system and a new user interface to go with it. Find out what we've done, why we've done it, and what we're doing next, as well as how to give us your feedback on the changes we've made.




Building the Right Environment to Support AI, Machine Learning and Deep Learning

t was just about exactly two years ago that DevX changed enough things around that our readers were likely to notice. At that time we were implementing a site-wide navigation bar and putting more links and resources on high-traffic pages. That initiative was very successful but it didn't solve one of our biggest challenges as an online publisher: that is, how do you help people find the needle in the haystack when the metaphorical haystack is a dynamic, ever-changing imbroglio of converging technologies?

It wasn't so many years ago that programmers of one stripe had relatively little in common with programmers of another. You had your basic, foundation-level similarities, but on top of that were layer upon layer of system-, language-, platform-, protocol-, etc-specific knowledge, with little overlap between them.

More often than not, these silos of isolation grew up around programming languages. In the early days there were COBOL, FORTRAN, C, and BASIC programmers; later, we had the widespread adoption of object-oriented languages to divide us further and within each of those, new language factions were created with new version and vendor releases.

Then, of course, several things changed.

  • Increasingly, languages provided programmers with a level of abstraction from the hardware, because they could recompile their programs for different chipsets and (sometimes) different platforms, but languages provided less abstraction from the platforms themselves; programming an application for Windows remained very different than programming one for UNIX or for the Macintosh.
  • The Web broke down the high sidewalls of platform isolation and gave developers a way to deliver applications to any platform that could make simple Web requests and parse HTML. Browsers took on the task of abstracting the front-end portion of applications by letting developers use HTML as a common GUI syntax to create controls that developers could program with JavaScript.
  • Java provided a sorely needed platform abstraction and gave developers an easier way to write cross-platform code, simplifying and unifying development for disparate hardware. Java has been nearly as successful in replacing platform-specific back-end programming as browsers have been in replacing and augmenting front-end client applications.
  • XML provided a simple text-based format for describing almost anything, from database records to method calls, to object persistence. Because it's both self-describing and (with a schema or DTD) self-validating, XML is breaking down all the remaining barriers between programming languages. With a simple (SOAP) XML wrapper, code in any language can consume services written in any other language.
  • The .NET framework and the Java platform are also breaking down barriers, showing that language syntax is often nothing more than a thin wrapper atop a robust class library.

Today, some developers still write in a single language, but many more write in multiple languages; and nearly all developers pay attention to what goes on in the other guys' camps, a skill they've developed not out of curiosity but out of necessity. Further, an entire new IT specialization has been created to address application integration. Enterprise is neither a new word nor an interesting one, but the importance of having "enterprise scope," as a developer, continues to grow.

For all of these reasons, developers' most pressing needs today are often not how to solve some minutiae of language-specific syntax, but how to design applications from the ground up to speak the lingua franca of today's any-client, any-platform, any-datastore, any-location applications; how to abstract data from code dependencies; how to isolate code from platform dependencies; how to design and implement classes rather than how to code yet another sort routine. And it goes without saying that developers' information and research needs have changed in kind. And for DevX, that means making some changes.

Once it was sufficient—even practical—to distribute information in ways that meshed with the language-specific silos that the programming world had invented. DevX was once defined by a handful of language-centric "zones"—C++, VB, Java, and Web—but more and more what developers need to know is not so obviously defined by the language of their current application. For example, what "zone" is most appropriate for Web services? Web services are not language-specific. They're not (despite the name) either Web-specific or even Web-dependent, and they're not platform-specific.

Web services embody the changes that are taking place in programming, and we want DevX to mirror those changes in the way we provide access to programming information. So, while technology-specific zones still compose the navigational core of DevX, we're working hard to make architectural changes that will help us provide you with the information you need, when you need it, with minimal forethought from you.

This week we deployed the first phase of a major architectural overhaul of DevX: a project that has been neither short nor pretty—nor, regretfully, even finished—but it signifies the first major step in a critical update of our back end architecture. With our new content management system comes new opportunities for more features and more content, and an updated user interface to go with it.

Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date