Microsoft moves on F# functional language

Microsoft plans to integrate F#, a functional programming language developed by the Microsoft Research group, into its Visual Studio application development platform, said S. “Soma” Somasegar, corporate vice president of the Microsoft Developer Division

The company, however, has not laid out a formal release schedule, although Somasegar pledged to both integrate F# into Visual Studio and continue evolving it.

Pronounced “F sharp,” F# is based on the concepts of functional programming, Somasegar said. Functional languages treat computation as the evaluation of mathematical functions. The mathematical slant of functional programming is appealing to professionals in domains described with mathematical notation, including financial, scientific, and technical computing, said Somasegar.

F# combines type safety, performance, and scripting with the advantages of running on a on a modern runtime, Microsoft Research said. It supports interactive scripting like Python and the strong type inference and safety of ML. F# can access.Net libraries and database tools.

Bloggers corresponding about F# on the hubFS blog had positive responses to Microsoft’s plans.

“I can’t overstate how excited I am by this news,” one blogger said.

“I discovered F# a few months ago and since then have made it my primary programming language (moving from Python and Java). I have found it to be a great language for developing simpler scripts or programming ‘toy’ implementations of algorithms. I’ve also found it to be a great language for building up real applications because of the ability to leverage everything already existing for .Net,” the blogger said.

Somasegar cited other functional programming efforts at Microsoft.

“Language features, such as lambda expressions in C# and generics in .Net 2.0, have roots in functional languages, and LINQ (Language Integrated Query) is directly based on functional programming techniques,” Somasegar said. LINQ extends C# and Visual Basic and simplifies how database and XML queries are written in these languages.

F# is designed to be a “first-class citizen” on .Net and will run on the on Microsoft CLR (Common Language Runtime), Somasegar said. Object-oriented programming is embraced and F# integrates with the .Net Framework. F# makes boosts .Net in the academic world, Somasegar said.

“We believe that through F# and languages like IronPython and IronRuby we can help offer students and educators choices beyond the current mainstream and enable the use of these languages across the curriculum. This helps educators have the option to use Visual Studio as a consistent tool set from course to course,” he said.

Also in the application development realm Monday, the Microsoft Developer Division unveiled its Tester Center Web site. The site enables testers to connect with a community, contribute content and share testing practices and experiences.

AI Program Thinks Like a 4-Year-Old

Virtual synthetic characters with the thoughts, feelings and beliefs of real humans can also contribute to homeland security, said Selmer Bringsjord, head of the department of cognitive science at Rensselaer and the leader of the project. One area is training, to simulate interaction with synthetic characters that are “very robust and have these actual religious and other mindsets” common to people from other societies.

Researchers at the Rensselaer Polytechnic Institute have created a reasoning virtual 4-year-old child.

The “child,” named “Eddie,” can reason about his own beliefs to draw conclusions in a manner that matches human children of that age.

To test Eddie’s reasoning powers, the group created a demo in Second Life in which Eddie was shown someone placing an object in one location then leaving the virtual room, followed by a second person who moved the object to another location in the room. Eddie was then asked where the first person would look for the object when he got back.

Eddie’s response was the first location — incorrect, but typical of a 4-year-old child in the real world.

Like real children, Eddie can learn from his mistakes and, if the test is run again, will give the correct answer.
Not Your Everyday Avatar

Second Life is a virtual world launched in 2003 in which its users, called “residents,” can interact with each other through virtual representations of themselves, called “avatars.”

That isn’t what Eddie is about. “By definition, creatures like Eddie are not avatars, which are being directly controlled by real humans in the real world,” Selmer Bringsjord, head of the department of cognitive science at Rensselaer and the leader of the project, told TechNewsWorld.

“The idea is, you might have a doppelganger, a counterpart in the virtual world, but that’s only because the synthetic character in the virtual world has your memories, your background and your capacities.”

Bringsjord’s project wants to create virtual people who reason, have beliefs and emotions, and even have religion. Ultimately it will re-create the Starship Enterprise’s holodeck, where humans will be able to interact with holographic representations of other people.

The virtual characters will be powered by theorems because “this approach to artificial intelligence Latest News about artificial intelligence is based on mathematical logic so everything the character thinks, believes, says is a theorem,” Bringsjord said.
Powering the Math

Those theorems that replicate the “very rich set of beliefs and knowledge” that create the behavioral repertoire of humans are so complex and difficult that supercomputing power is necessary.

Two of Rensselaer’s state-of-the-art research facilities — the Computational Center for Nanotechnology Innovations (CCNI) and the Experimental Media and Performing Arts Center (EMPAC) — will be used to power the project.

CCNI, the most powerful university-based supercomputing system in the world, consists of massively parallel IBM (NYSE: IBM) Latest News about IBM supercomputers in the Blue Gene family; IBM Power-based Linux clusters; and AMD (NYSE: AMD) Latest News about AMD Opteron processor-based clusters. These provide more than 100 teraflops of computing power.

EMPAC, opening in October 2008, will feature powerful visualization, audification, immersive environments, sensor applications, communication Improve customer service and productivity with Avaya Unified Communications. technology and physical modeling capabilities.
Strong AI or Weak AI?

Whether or not you need all that computing power is open to debate.

Rensselaer is adopting what is known as the “Strong AI” approach, where you need gobs of computing power because you want to duplicate what the brain does.

However, advocates of the “Weak AI” approach hold that it is more important to reproduce the results of the brain’s operation — human behavior — and this requires far less computing power.

Ai Research, with a research center near Tel Aviv, takes this approach. It is building a child machine, a computer program designed to converse with humans in natural language and learn from its spoken interactions with human caretakers the same way and at the same rate a human infant would. This will grow from infancy to adulthood and pass the Turing Test — where a machine can’t be distinguished from a human in conversation — in 10 years.

“My choice to pursue Weak AI was motivated by my belief in the contingency of the hardware, the essentiality of the logic making up the mind, and by my personal training — computer science, linguistics and the philosophy of language,” Yaki “Jack” Dunietz, Ai’s president and project leader, told TechNewsWorld.
It’s Just a Kid

“I’m always suspicious of this kind of thing where they’re dealing with children,” anthropologist and sociologist Paul Jorion told TechNewsWorld. “I always have the feeling that there are some major issues they haven’t been able to solve yet.”

Jorion developed ANELLA, the Associative Network with Emerging Logical and Learning Abilities, whose intelligence was guided by the dynamics of affect, or feeling, back in 1989 for the artificial intelligence unit of British Telecom.

Most of the approaches toward AI “have taken an over-sophisticated view of the problem,” Jorion said. His, on the other hand, was “very simple — I’ve got a universe of words, and you just find a way to connect them that makes sense.”
Saving the Country

Virtual synthetic characters with the thoughts, feelings and beliefs of real humans can also contribute to homeland security Free Trial. Security Software As A Service From Webroot., Bringsjord said.

One area is training, where running simulations where the troops interact with synthetic characters that are “very robust and have these actual religious and other mindsets” common to people from other societies will prove useful, he explained.

Hand-to-hand combat is another area of training.

Yet another possibility is detective work, where you could “create scenarios in the past that are very detailed and run in real time,” Dr. Bringsjord said.

Finally, there are “less appetizing” possibilities such as providing synthetic characters with control over weapons, but then “you have to make sure the synthetic characters have a strong code of ethics,” Bringsjord said.

The project is ambitious, and “I’m not claiming that these synthetic characters now, or in the future, will be genuinely conscious or self-conscious,” Bringsjord added.

Java increasingly threatened by new app dev frameworks

Is Java slipping into second-tier status in the application development space? All the attention being given to its rivals these days might give off that impression.

Nearly 13 years old, the Java language and platform created at Sun Microsystems now shares the software development limelight with scripting languages such as PHP (Hypertext Preprocessor) and Ruby, as well as with Microsoft’s .Net technologies.

Much touted for its ability to run on multiple platforms via the JVM (Java Virtual Machine), Java grabbed headlines for years before being seriously challenged by .Net and open source scripting variants. Today, these alternatives to Java have gained plenty of adherents. Open source CRM vendor SugarCRM, for example, chose to write its application in PHP instead of Java. “When we set out, we thought we were going to build a Java application on top of Oracle,” said Clint Oram, SugarCRM co-founder. The company, however, saw PHP maturing and found it “just more accessible than Java, for the average person,” Oram said.

Microsoft, meanwhile, has made its .Net platform a serious player in the enterprise space. A November 2007 report by Info-Tech Research Group stated the case for .Net becoming more popular than the Java platform in enterprises.

But don’t count Java out just yet.

“Everywhere you turn, Java touches something. It’s used in databases, it’s used to drive the Web [systems] of big companies like eBay,” said Rick Ross, president of the DZone developer community and founder of Javalobby, a Web community for Java developers. He also is a Java developer.

The Java industry remains very, very large, Ross said. “All of it put together is literally billions and billions of dollars,” said Ross, noting the use of Java by everyone from IBM to Oracle and its latest major acquisition, BEA Systems.

Microsoft .Net is attracting a lot of smaller developers
The Tiobe Programming Community Index, which ranks the popularity of programming languages, has Java at No. 1 for February, the same place it held a year ago. Following it are C, Visual Basic, PHP, C++, Perl, Python, and C#. Further down the list are Delphi, JavaScript, and Ruby. (Tiobe ratings are based on the worldwide availability of skilled engineers, courses, and vendors, with popular search engines used to calculate the ratings.)

Info-Tech, however, found Microsoft has a strength in its ability to offer a single soup-to-nuts stack featuring .Net, the Exchange e-mail system, and SQL Server database. “[Companies] want one throat to choke,” said George Goodall, an Info-Tech senior research analyst and author of the firm’s November report.

“We’re not particularly bullish on .Net technology over Java technology, but the difference here is that .Net for most applications is good enough,” he said.

Info-Tech sampled 1,900 companies, most of which are midmarket companies with less than $1 billion in annual revenues. The study found that 12 percent of enterprises focus exclusively on .Net as compared to 3 percent focused just on Java. Also, 49 percent center primarily on .Net, compared to 20 percent for Java.

Despite the survey’s midmarket focus, Goodall noted that even respondent companies with annual revenues exceeding $1 billion had a similar .Net preference as the midmarket respondents. Still, the survey did find that the popularity of .Net decreases very gradually as the size of enterprises increases. But Goodall cautioned that in such companies, .Net’s popularity decline did not come from an increase in Java usage, but instead from a preference for other development platforms in heterogeneous environments.

Even faced with increased competition from the likes of .Net, Java is nowhere near the end of its life, Info-Tech’s report concluded. The platform has incredibly strong allies and an immense code base. Just as user sites must tend to legacy Cobol code, so will they have to tend to a lot of Java code in the future. “[Java is] not going to disappear,” Goodall said.

Rails framework founder David Heinemeier Hansson also likened Java to Cobol. “I think Java is still relevant in the sense that languages never die. There will be systems running in Java 20 years from now,” he said, “just like there are still lots of Cobol systems around from way back when.”

New frameworks are gaining traction among developers
“Ruby, PHP, Python, and similar platforms have definitely taken a big chunk out of the Java brain trust,” said Hansson. “We have a large constituency of Rails users who are Java refugees.”

New frameworks such as PHP and Ruby on Rails indeed “have taken a huge bite out of the territory that used to belong to Java and .Net,” said Tim Bray, Sun’s director of Web technologies — emphasizing that .Net has the same issue. “I totally don’t believe, based on what I see, that .Net still has the kind of growth that it had for a few years there starting in the late 1990s.The evidence seems to show that while Java isn’t the hottest growth spot, it’s still the largest single ecosystem out there,” he added.

Hansson agrees that .Net is also threatened by new frameworks, but he noted that .Net nevertheless seems to be taking away mindshare from Java in shops predisposed to use Microsoft technology.

A program manager at a government agency, who wished to remain anonymous, said solutions such as Adobe Flex and Microsoft products are offering alternatives to Java. “On the server side, Java will always have a place in stitching things together and customizing, but to turn out nice applications quickly that are maintainable, I see the other tools starting to take over that space,” the program manager said.

Sun looks ahead to a world where Java may not be king
At Sun, CEO Jonathan Schwartz remains a staunch Java advocate but acknowledges Java is not the only contestant in the show these days. At the SugarCon 2008 conference for SugarCRM users earlier this month, Schwartz noted Sun’s Da Vinci Machine project to extend the JVM to accommodate other languages. “The intent is to say, ‘Look, Java is one language, but it is not a hammer for all nails. It happens to be a really, really good hammer,’” Schwartz said.

Bray admits that the Java language “is starting to look a little boring to the young rabble-rousers in the community,” and says the Java language is “replaceable.” However, Bray argues that the Java platform — the JVM, APIs, and libraries — is here to stay. The JVM is “insanely popular,” and the consensus is the libraries are about the best, he said.

In anticipation of a less Java-centric world, Sun is working to embrace the new technologies. Case in point is the JRuby effort to enable Ruby to run Rails applications on the Java platform, Bray said. Meanwhile, work is being done to spruce up the Java language with closures and other capabilities, he said. (Closures lets pieces of code be passed around and used elsewhere without the need to declare a subroutine.)

Rails founder Hansson agrees with Sun’s direction. “I do think the mentality of ‘Java is the answer, what was the question again?’ is gone. Even Sun realizes that now, which I think is healthy. There are lots of domains where Java is just too heavy and cumbersome an environment to dance with.”

Confessions of a cobol programmer

Last summer, Michael Vu, a 40-year-old independent IT consultant, found himself in a wholly unexpected place midway through his career.

He’d signed a three-week contract to help a major U.S. retailer with an enterprise reporting project. The initial work was so successful that the project was extended. As a consequence, Vu was suddenly deep in the world of Cobol.

Yes, Cobol, the programming dinosaur that was last hot in the ’80s. Cobol, notorious for its overrich syntax and overlong code. That Cobol.

Although he’d never worked in Cobol before, Vu actually had wanted to learn for a while. In the midst of predictions of a massive retirement by baby boomers, Vu saw an opportunity. “I said to myself, even if only 0.1% of those baby boomers are Cobol developers, that would open up a huge market.”

As Vu’s work on the project proceeded, he realized that the retailer had 10 years of code living in Cobol. And the next phase of the project depended on that code.

So Vu, whose training and experience are in C and C++, jumped in and learned quickly. And he wound up with a skill that enhanced his strategic value to the organization. “I ended up moving from just being a regular coder with no idea of how the business runs to being someone they’re relying on to extract business knowledge from their code base,” he says. He now spends 30% of his time working in Cobol, and he expects that to stay the same or even increase.

For Vu, working in Cobol feels a bit like discovering a lost art. “The shocker for me was that Cobol is still heavily in use, even when my client is using the latest in enterprise Java, C+ and Visual Basic technologies,” Vu says.
I know it’s an old man’s game, [but] I like the position of being the younger individual in the market.”
Brian Vance, age 30,
Grange Insurance

What’s going on here? To paraphrase Mark Twain, the reports of Cobol’s death have been greatly exaggerated.

Some 75% of the world’s businesses data is still processed in Cobol, and about 90% of all financial transactions are in Cobol, according to Arunn Ramadoss, head of the academic connections program at Micro Focus International PLC, which provides software to help modernize Cobol applications.

Because of the massive installed base, it would be too expensive to try to replace all that code, he says. Instead, many companies are looking for ways to integrate Cobol with newer applications.

The experienced Cobol programmers who can best do that job, however, are dying, or at least retiring. In a 2007 Micro Focus survey of its customers, more than 75% of CIOs said they would need more Cobol programmers over the next five years, and 73% were already having a hard time finding trained Cobol professionals.
Aging out the market

“Without a doubt, it is a challenge to find a developer in Cobol who is not nearing retirement age,” says Dale Vecchio, research vice president of application development at Gartner Inc. In 2004, the last time Gartner tried to count Cobol programmers, the consultancy estimated that there were about 2 million of them worldwide and that the number was declining at 5% annually.

“Cobol will head downhill quickly over the next 10 years … as baby boomers retire and there is insufficient recharging of the population,” notes Vecchio.

As Vu’s experience shows, that may mean career opportunities for IT professionals willing to learn and work in Cobol. (How long those opportunities last, however, is a subject of debate. See “Cobol: Going, but when?” for details.)

We surveyed Cobol programmers and companies involved in the Cobol field and determined that the market these days supports two types of careers:

* An emerging role in which the programmer serves as a bridge between Cobol code and new applications. Such jobs require people who understand Cobol, the business rules and processes on which old Cobol programs are based, and more modern languages such as Java.
* A more traditional programming path, in which the employee maintains and fixes old Cobol code in addition to writing new code, also still in Cobol.

The Cobol liaison role can be an interesting career path, says Ramadoss. “Cobol doesn’t stop at Cobol,” he points out. “You can integrate it into any modern technology.”

With the emergence of service-oriented architectures, companies are able to more easily reuse their Cobol code, notes Nate Murphy, president of Nate Murphy International, an IT professional services firm.

The 66-year-old Murphy, who has decades of mainframe and Cobol experience, sees a resurgence in the value of Cobol because of the emergence of SOA and IBM’s Language Environment, which provides a common runtime environment for combining many different languages, including Cobol.

“Now you can extend and add subroutines for other Web-based features that you need,” he says. “All of a sudden you’ve got a valuable asset in these old Cobol programs, and you can extend them and expand their capability without writing new code.”

The other career path is the more traditional programming job — maintaining and fixing old code as well as writing new Cobol code. While some companies are now offshoring this type of Cobol work to places like India — especially the maintenance of old code — plenty of organizations want to keep a certain number of programmers in the U.S., especially if their jobs are key to keeping critical business systems up and running.

That’s the position that Stacy Watts, a 28-year-old senior developer at Nationwide Insurance in Des Moines, is in. She’s been writing Cobol code for about seven years, and last year the company offered her a chance to remotely oversee a team of programmers in India. Watts designs the program and then parcels out the coding work to the India-based programmers in addition to doing some of it herself.

Watts says she’s not worried that her job might be outsourced. Even with the offshore programmers, “We still don’t have enough people to get all the work done,” Watts says. What’s more, she views the opportunity to lead the India team as a step toward a management role.

Although Watts studied several programming languages at school, including Visual Basic, C and Java, she naturally gravitated to Cobol. “It was the mainframe that came easier to me,” she says. “It made more sense to me.”

Cobol programmers frequently cite job security as one of the attractions of their career choice. Brian Vance, a 30-year-old mainframe programmer at Grange Insurance in Columbus, Ohio, started at the company five years ago, maintaining and updating old Cobol code. Today, he’s developing new Cobol code as the insurance provider branches out into several new states.
I’m hanging on with two hands to my keyboard, and they are trying to pry me away.”
John Walczak, age 31, Sallie Mae

The youngest of about 20 Cobol programmers at the company, Vance foresees a stable and secure career. “I know it’s an old man’s game. I like the position of being the younger individual in the market,” he says. “You’re going to have people retiring and nobody to fill their shoes. So I think my job stability is about as good as it can get.”

John Walczak, a 31-year-old Cobol programmer at Sallie Mae Inc. in Indianapolis, also says he’s satisfied and secure in his work. When he graduated from Eastern Illinois University, Walczak wanted to work on Web-related projects. But Sallie Mae hired him to work on Cobol, promising that he’d be able to move around the company and do other things.

After a couple of years, he did indeed have an opportunity to move to a team that was developing a Web site. But to Walczak’s surprise, he didn’t like it. “I thought I’d be building Web pages and doing graphics. But that stuff is already prebuilt,” he says. Instead, he was building code “behind the scenes — doing a lot of Visual Basic and some .Net code.” He decided to go back to Cobol programming.

Now the company is trying to persuade Walczak to move into more of a liaison role. After working at Sallie Mae for more than eight years, Walczak understands how its systems work. “So they want me to use that knowledge to help with project development and with project design,” he says.

Problem is, Walczak’s not so sure he wants to make the move. “I love programming. I love to code,” he says. “I’m hanging on with two hands to my keyboard, and they are trying to pry me away. I don’t want to go.”
Cobol: Going, but when?

Most industry observers agree that a dose of Cobol training can help your career in the short term. But will Cobol be around long enough to get you to retirement age?

Companies involved in the Cobol market like to point to the statistics — such as that 75% of the world’s business data is still in Cobol — to prove that Cobol, and therefore Cobol jobs, will be around for years to come.

Dale Vecchio, a Gartner analyst, isn’t so sure.

“I’m seeing an increasing interest in organizations extricating themselves from IBM mainframes and Cobol,” says Vecchio. “It’s becoming increasingly accepted that they can get off the mainframe and move to Windows or Unix or Linux. I expect that to continue over the next five to seven years.”

In addition, large companies are increasingly replacing custom mainframe applications such as human resources or supply chain management — often written in Cobol — with packaged software from companies like Oracle, he notes.
Employment opps abound

Nevertheless, Cobol programming is still a useful skill for IT professionals to have. “The world doesn’t need 100,000 new Cobol programmers, but it does need several thousand new Cobol programmers,” says Drake Coker, chief technology officer for Cobol at Micro Focus International.

“There is a lot of work out there for people who know how to take a new system with new technology and marry it to an existing system,” he adds.

How to get Cobol into your toolbox is another matter. Fewer and fewer U.S. colleges and universities now offer Cobol training. In the past couple of years, both IBM and Micro Focus have launched initiatives to encourage universities to train more mainframe programmers. Through these programs, the companies provide schools with free technology and courseware.

Although these efforts might keep some Cobol courses going, Vecchio doesn’t think they will do much to prevent the dramatic decline of Cobol. The efforts, he says, “are too little, too late.”