November 29 2006
31 Dec, 2006 deadline for Google Answers
Hurry up everyone its one month more. 31 Dec, 2006 is the last day when Google will stop accepting questions on Google Answers. The 4 year project which started with a idea from Lary Page, Google founder is being closed. Google says they will not be accepting any more new questions. It took at least 1000 users to get the Google Answer project to what it is now. And for the billion others all Q & A will be available for viewing.
 


November 28 2006
Pay USD 500,000 per movie shown
MPAA is going to fine any home user that has a TV larger than 29", a comfy chair, and a surround sound system. Pay $50 registration fee and save half a million bucks. How do you get around this.. 1. Combine 6 LCD screens just below 29" 2. Comfy chair, how is that defined, probably if the MPAA sits they should have a back ache :) 3. There is no problem having a surround if the above 2 are not qualified for. There you save yourself USD 5O and USD half a million
 


November 28 2006
YouTube, G factor and VCast.
Google probably had a plan, well that could be the reason the bought YouTube for a stagering amount. Well why did they (previous owners) sell then, it could be because of the money, and probably because of the copyrights issue. YouTube is going to be available on cellphones very soon from Verizon, a service called VCast. Google would also integrate that with all their G's. They might even have an application ready for G factor. I think it is a really great idea to get YouTube on cellphones. This is going to encourage more users to browse from their phones. This sure is going to get microsoft on the heels to get soapbox up on the small screens. By the way soapbox currently has not many viewers, this stats should be considered not even close to YouTube or probably Google Video.
 


November 27 2006
Censorship Circumvention
Censorship Circumvention, right. December 1, 2006 will dawn with the release of the Psiphon. This software helps users in countries that has put up restriction browsing the internet. Psiphon operates through a network of computers. That is a user in an unrestricted country would have to download the Psiphon software and install. Users from the restricted countries will have to connect to these computers to access content that has been restricted by their respective countries. Brilliant idea. The next thought come about...Security. They say that the Psiphon would have an encrypted connection . The system connected to is acting like a proxy and any site browsed would be saved on the system, and the administrator will have to delete the temporary internet files. Viewing packets using a sniffer is another story. What an excellent idea and the risk any user will take to have his/her system act as a proxy is to been seen after the launch by Open Society Institute (Soros Foundation) Centre for Innovation Law and Policy, Faculty of Law, University of Toronto.
 


November 26 2006
PodTech website
I have to admit that since Robert took the charge as VP Media of PodTech the website has considerably changed, why dont I say good. Just for the reason that it does not look good. I must add a fact here that PodTech has changed considerable since I observed the company before Robert changed seats. One reason is that it looks more like a blog, yes its a media company, but does the posting need to look like a blog entry. It also looks like a local radio station design with stacks of reviews and interviews. This could be done better, having a corporate and media outlook. Its possible that they are working on it, and its also possible that they are not working on it.
 


November 26 2006
RSS Reader - feeddemon
I go through different websites for techie news that would range from new products to security and this did tire me. In spite of knowing that RSS reader helps, I thought oh what the heck, not downloading one but no way the want for the reader was strong and I had to go around looking for a RSS Reader. First I downloaded the Omea Reader, it seemed to work for a day, but I wanted the pictures to show up when I am offline. That made me download feeddemon 2.1 from newsgator, its really good. I can view the pictures and posts offline. It lets me find feeds with keywords, automatic download of podcasts. The feeddemon has one downside, I am not sure how I am going to solve it, but any post that is read simply disappears. I cannot read any post that has been read
 


November 25 2006
Pink Zune, Orange Zune
Either this is a joke or Microsoft is "trying" to break the iPod graph, with a Pink and Orange color. Does it really make a difference in color, its go the same stuff that it had in the soviet era - brown and black. Breaking the iPod graph will require not money but the right moment and approach. Okay MS admit you really would have to work hard to get yourself close to the iPod. Use it as a reflector for your car, Good hype for the Xmas shopping :D
 


November 25 2006
Next big for the web and gone...and next big for the web
7-10 years back a web developer was defined as somebody who could work on Photoshop, I think it was version 3 or 4 and could hand-code html with a few javascript. 2-4 years back that changed with the web modernizing.Web 2.0. There came the web developer, web designer and the whose who in the designation rank / table. All sat to get the web 2.0 hype getting through and users had gleaming eyes, tech news was flooding with all sorts new touch for the old applications. Corporates like Google, Yahoo, Microsoft with big greenery got things to a start and pretty well, I must say. Then there were those VCs that churned out that greenery for those budding companies, that promised the users never before experience. Then there was a big-bang, here comes Web 3.0. Most of the net users have no idea what is web 2.0. Web 2.0 is social gathering, like blogs,chat,email,music playlist,contacts,rss reader etc all on one page. Click the mouse and you are where you want to be. Do we really need this Web 2.0 to Web 3.0 upgrade, I mean who is using IP v6.0. But the time the heat hits or understand the full implication Web 3.0 is gone with another big-bang.
 


November 22 2006
A legal nightmare for microsoft if...
Ballmer seems to be saying that when linux is used, then microsoft intellectual property is being used. Probably that is what he meant, if anybody uses linux kernel that would not be a microsoft property, but if you use hmmm... what is microsoft property in linux then. Linux is made up of small components from the programmers and users of the opensource community. If microsoft did buy linux as ballmer says then he actually bought linux code without the written permission of the users who actually coded it to make it a non-blue screen O/S. That in turn would create a legal nightmare for microsoft itself. This kind of scare would be just good for the not so informed management, where they would see microsoft suing them. If there are any infringements then linux kernel programmers would come in and re-write the whole code. This should be the right call for all the programmers of the linux kernel to voice against microsoft. Its just like microsoft taking the .com and .net registry, then it would go ahead and say that all domains registered are the property of microsoft. The next microsoft saying would be, " we own your hard drive because our O/S runs on it"
 


November 21 2006
Simple automated RSS feed with PHP and MySQL
This is the most simple method of creating a RSS feed for your website, this would work if you have php, mysql on your webserver. Now as you update your index page the RSS will also automatically update Put the below code(link) between the
<head></head>
tag and the rest of the code in the php tags (I have not put those) in the index.php file.
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="feeds.xml">
Here is the sql statement to select posts from the table, I have put the limit to 10 tables, you can change this to any number.

mysql_select_db($database_name, $connection_string);
$query_table = "put in your select statement here limit 10";
$table = mysql_query($query_table, $connection_string) or die(mysql_error());
$row_table = mysql_fetch_assoc($table);
$totalRows_table = mysql_num_rows($table);

first create a empty file feeds.xml. The below code is for creating the xml file.

$myFile = "feeds.xml";
$fh = fopen($myFile, 'w') or die("can't open file");
$xml = "<?xml version=\"1.0\" ?>\r\n<rss version=\"2.0\">\r\n";
$xml .= "<channel>\r\n";
$xml .= "<title>Blog name ]]><![CDATA[";
$xml .= "</title>\r\n";
$xml .= "<link>Blog url ]]><![CDATA[";
$xml .= "</b></font></link>\r\n";
$xml .= "<description>blog description</description>\r\n";
do {
$xml .= "<item>\r\n";
$xml .= "<title>" ; 
$xml .=  $row_table['blog_title'];
$xml .= "</title>\r\n";  
$xml .= "<category>";
$xml .= $row_table['blog_category'];
$xml .= "</category>\r\n";
$xml .= "<description><![CDATA[";
$xml .= $row_table['blog_post'];
$xml .= "]]></description>\r\n";
$xml .= "<link>";
$xml .= "full post view url" .$row_table['post_name']. "</link>\r\n";
$xml .= "<guid isPermaLink='true'>full post view url" .$row_table['post_name']."</guid>\r\n";
$xml .= "</item>\r\n";
} while ($row_table = mysql_fetch_assoc($table));
$xml .= "</channel>\r\n</rss>\r\n";
fwrite($fh, $xml);
fclose($fh);
 


November 20 2006
Rip iPod songs back to the computer
Senuti Senuti is a free and open-source, Mac-only application that allows you to recover songs, photos and movies from your iPod. Senuti features drag-and-drop transfer of songs and playlists. Senuti also allows you to copy songs from a Windows formatted iPod. iPodRip IPodRip works in both Mac OS X and Windows. It has drag-and-drop support for moving songs from your iPod directly into iTunes, as well as one-click importing to restore a local collection. Features - Supports any file the iPod does - Supports video playback and podcasts - Recover Songs - recovers all songs, meta data and associated playlists to iTunes - Recover Playlists - reconstructs your playlists in iTunes based on the songs already in iTunes - Stand alone jukebox with menubar controls and song information - iTunes integration when importing songs and playlists - Supports iTunes song information, including ratings, play count, last played and others - SmartSync - rules based importing of songs - View & copy playlists - Drag & drop support - iTunes style browser - Undo support - Print, HTML and XML support - iTunes like floating window - Complete documentation
 


November 20 2006
Stevie B goes about collecting royalty


This is about Microsoft asking linux users protection against Microsoft code being in linux
 


November 20 2006
Windows PowerShell
Microsoft Windows PowerShell command line shell and scripting language helps IT Professionals achieve greater productivity. PowerShell is easy to adopt, learn, and use, because it works with your existing IT infrastructure and existing script investments, and because it runs on Windows XP , Windows Vista, Windows Server 2003 and Windows Server Longhorn. Exchange Server 2007, System Center Operations Manager 2007, System Center Data Protection Manager V2, and System Center Virtual Machine Manager leverage Windows PowerShell to improve efficiency and productivity. Windows PowerShell Documentation Pack Download Windows PowerShell
 


November 20 2006
new design for the blog
my job and design on the tableless blog taking up my time, oh i forogot reading too :D
 


November 18 2006
US $99,999,999.00 for a PS3
Send that kind of money to charity

Click here for ebay website
 


November 18 2006
Ballmer becoming bush
Ballmer said this... and then said this... oh and that...., what in the name of dickens, first he goes on to say that Vista does not need an antivirus because his sons using it and whatever reason followed. Then they bought or tied up with Novell. He thought he bought the rights of the users of the linux world. Guess what he might say next, okay linux is mine! What ever he says is to promote the vista, eventually 75% people are going to buy and business are going in for an upgrade, probably thats 6 months down the line, not ASAP. But to say such awful comments about the opensource world is a NO... NO ... NO
 


November 18 2006
Three Google searches you must know
(xxx.com should be replaced with your site) Site:xxx.com Displays the systems under the domain known to Google and used by attackers to quickly identify hosts available to the Internet. Also quickly shows pages known to exist under the domain, allowing an attacker to quickly inventory the pages and structures, identify what technologies (HTML, Notes, ASP, PHP, etc.) are in use at the site. All of this information allows an attacker to focus their attacks. Filetype:yyy site:xxx.com Used by attackers to isolate potentially confidential data offered by your site. If improperly configured, your site can sometimes make even intended-to-be-private files available. Replace yyy with common file types like: doc, xls, pdf, txt, rtf, ppt, etc. It is not uncommon to find very sensitive data this way from customer lists to marketing plans and often social engineering fodder such as phone books, email addresses, etc. Link:xxx.com Reveals what sites are linking to your site. How is this helpful? Attackers can use it to find your business partners and others who might have special access through partner networks, firewall rules, VPNs, etc. **Bonus: Sometimes, you can use this to Google phishing and scam sites that may be linking to you to grab content and graphics!
 


November 18 2006
Windows Live Mail desktop - who needs this
I downloaded Windows Live Mail desktop today. It said I could access every possible mail, from gmail, aol etc, well for once thats being true. It seems amazing, but we have the outlook express coming in with the IE. It does the same function..hmm the feeds too currently. I can create, read and move any email to the desktop, that is what Outlook express did. It looks nice, got fancy colors, the zing like when windows xp succeeded win 2K. But what is the sole purposes anyway. And moreover how do I log out from a particular email account, Microsoft has not made that available. MS Guys...Outlook Express done that and still doin'
 


November 15 2006
Zune advt
The hidden messages in zune advt

 


November 15 2006
Googles answer to life and universe
Click here to find out googles answer to life and the universe, its pretty intresting
 


November 14 2006
Cash back from Dell
To get a (approximately) $50.00 cash back from dell if you are adherent Open Source supporter, just disagree with the current windows license agreement during the boot-up of a new PC or laptop. The text of this agreement states users can get a refund for the "unused products" on their new computer if they get in touch with the machine's manufacturer. Write a letter to Dell stating that you disagree with the MS license terms and would like a refund of the funds of the OS.
 


November 14 2006
Zune designed by a carpenter
I am sure everyone has had a good look at the picture of zune, notice the hard bound soviet-era style box and also the colors. Microsoft would have asked a carpenter for the design. They had to get it designed and release just before christmas. They probably came up with the term zune by changing the T in TUNES to Z and voila! you have ZUNES. I am going to take a wild guess, why would somebody buy zune. For reasons, that you cannot share a song wi-fi due to rights restriction, limited number of z(s)ongs or no songs. Deletion of any podcast or song after listening 3 times or 3 days,which ever comes first. Ballmer says Wi-Fi will level out some of Apples advantage with media players, did i read media players and not zune. But that still indicates Apple leads the race. Anyways Ballmer is being paid for saying zune is good. Go for creative guys or any other mp3 player why zune, go for ipod which has lots to offer. Start to buy ipod for the reason that it looks appealing, sexy.
 


November 13 2006
What has Microsoft done?
Let us take it from this point in terms of computer era, millions of years back (where 128K memory was BIG) MS gave us the DOS, we were happily putting in 5" floppy disks and booting systems, wait 5 minutes and rebooting writing programmes saving in 5" floppy. Then Sony brought in the 2.5" floppy - what a swell from the company who plugged our ears with the Walkman. MS went on to get us the Windows 95, the world was swaying to the tunes of GUI based, easy computing. But let us not forget Apple bought the first GUI based computing AND THE MOUSE. Okay so what if MS copied that bit... hmmm well it did make our lives easier. We were enjoying every bit of the MS 95 O/S when windows 98 poped in making graphic games wonderful, lives, office and home work even more easier. Win NT was good from the server point of view, and people were swearing for every reason they could get their hands on. Patches came in for both 98 and NT. Unpatched servers were down and patched servers were running out of space and heavy. Then they brought out the Me version which was wonderfully and extremely disastrous. It made every other system crash and voila everyone started noticing, how that happened. Oh not to forget the Blue Screen of Horror Windows 2000 and servers rolls in with an NT backing, gone blue screen.. no just does not appear every time something goes wrong. Yes blue screen does appear. patches over patches over patches here. Users started experimenting with open source which coming out of the dark and getting popular. It had CD burners, MS office had its rival Open office, which could now open Word documents etc. Windows XP comes in with decoration and style, also with 64 bit power. what started with you could install xp on 1GB now required at least 2 GB with Service pack 2. All tuned with holes for a patch fix and patch for patch fixes. complete with proprietary software that cost a very normal user his pocket. MS office had become quite complex and had so much functionality that no one till now one has used entirely. Then came the copyrights, piracy, etc. It was a field day for hackers to crack open the hmm WGA? probably... but the did succeed. And here comes vista with a host of issues from every corner anyone can visualize. Nov 30, 2006 is the launch date and it is a good timing. Because Christmas and New Year is close, people will want to buy new PCs with VISTA enabled. And very soon the well termed word "crash", "drivers missing", "software not suitable" etc will start showing, this is going to be the talk of the town till Easter. What more could Microsoft ask for? Oh by the way what has Microsoft done?
 


November 13 2006
THE Voice behind ALL Movie Trailers
 


November 12 2006
Microsoft does use linux and solaris 8 server
These results are from netcraft.com



 


November 12 2006
Mobile phone can actually be a life saver
There are a few things that can be done in times of grave emergencies. Your mobile phone can actually be a life saver or an emergency tool for survival. Check out the things that you can do with it: - *EMERGENCY* *I* *The Emergency Number worldwide for **Mobile** is 112.* If you find yourself out of coverage area of your mobile network and there is an emergency, dial 112 and the mobile will search any existing network to establish the emergency number for you, and interestingly this number 112 can be dialled even if the keypad is locked. **Try it out.** *II* *Subject: Have you locked your keys in the car? Does you car have Remote keys?* This may come in handy someday. Good reason to own a cell phone: If you lock your keys in the car and the spare keys are at home, call Someone at home on their cell phone from your cell phone. Hold your cell phone about a foot from your car door and have the person at your home press the unlock button, holding it near the mobile phone on their end. Your car will unlock. Saves someone from having to drive your keys to you. Distance is no object. You could be hundreds of miles away, and if you can reach someone who has the other "remote" for your car, you can unlock the doors (or the trunk). *III* Subject: Hidden Battery power Imagine your cell battery is very low, you are expecting an important call and you don't have a charger. Nokia instrument comes with a reserve battery. To activate, press the keys *3370# Your cell will restart with this reserve and the instrument will show a 50% increase in battery. This reserve will get charged when you charge your cell next time.
 


November 12 2006
BumpTop video
BumpTop aims to enrich the desktop metaphor with expressive, lightweight techniques found in the real world.
 


November 12 2006
General video on Zune

 


November 12 2006
Stunning Horseshoe Shaped River


 


November 12 2006
Lazy for this week,
I am going to be a little lazy for this week, that would be one reason why I would not be posting quite often. I am trying to get this blog tableless. Already going through the development.
 


November 12 2006
Vonage V-phone - flash drive-based software phone






 


November 20 2006
Microsoft: No Antivirus Required for Vista?
Actually does linux really need a antivirus, probably not because linux viruses may not be far spread, likewise techie programmers would not have started programming vista viruses. Lets see on or after November 30, 2006. Thats what Jim Allchin says anyway. With ASLR (Address Space Layout Randomization), PatchGuard, and parental controls, he is let his seven-year-old use the system sans AV.. and he is very confident there'll be no malware downloaded to the system. Allchin's statement came in response to a question about his relative level of confidence that Vista would be more secure than Windows XP SP2. In response, he noted there were key security features added to Vista which could not be added to Windows XP SP2 even though, he said, his people apparently tried to do so. Two such features - namely Vista's new parental controls, and Address Space Layout Randomization (ASLR), which renders the object code of the system kernel in memory differently each time to thwart the designs of malicious code - render his son's Vista machine comfortable enough for him to use, even though production-quality anti-virus software for the unit has yet to be completed.
 


November 11 2006
Exhaustive Java link for programmers
JARS.COM, Java review service Java Application Developer Central Sun JavaBeans home page java.blogs Javacrawl Java and J2EE news Java Exchange "Java Servlet Technologies" Home of Db Connection Broker Java FAQs Daily Tips JavaForge Java For U Javageeks Java, The Illusion Java-Linux java.net "The source for Java technology collaboration" JavaOne Online Javapolis Javaref WIRED 3.12:The Java Saga - by David Bank Good background piece about Java. Java Server Faces (JSF) project home JSF Central Java Server Pages (JSP) JavaWorld Java Tips Java Tips at Javaworld Javootoo "javootoo.com is the Look and Feel Source for both Java developers and end-users. " JBook jCIFS Implementing CIFS in Java JConfig class library JDO Central Java Data Objects JDocs JDOM Jess, the Rule Engine for the Java Platform Jfree.org Home of JFreeReport and JFreeChart JGraph JGuru Jigsaw overview The JPackage project JMX (Java Management eXtensions) tutorial JRoller Free, Java-powered weblogs JUnit Keel Meta Framework KickJava JavaLanguage Specification Lessons Learned Doing Java Programming for my Web Site Linux Java Tips and Hints Page Java Lobby Apache Log4j Making sense of Java Maven Media Programming by Bill Day MegaMek "a networked Java clone of BattleTech" Message Driven Beans Tutorial Middlegen Mining Co. Focus on Java MyCGIServer Free application deployment Tor Norbye's Weblog Object Design Home of Objectstore "Database for the Web" Oracle Business Components for Java (EJB) Oracle SQLJ and JDBC OpenCMS Open Source Website Content Management System OSS through Java Initiative package gnu.regexp; Regular expressions for Java Patterns Central Piccolo "Welcome to Piccolo! It is a revolutionary way to create robust, full-featured graphical applications in Java, with striking features such as zooming and multiple representation. Piccolo is an extensive toolkits based on the Java2D API. And best of all, it is free and open source" PJA (Pure Java AWT) Toolkit PoolMan Object Pooling Library and JDBC Driver Portlet Open Source Trading Site PostgreSQL JDBC Driver Homepage Processing XML with Java Online book Java Programmer Certification Exam And Training The Java Programmers Source Book Protomatter open source Java classes Connection pool, object pool, more. Java Questions Bank Java Ranch RIFE web application framework The Roller Weblogger Rules4J rule engine Separating Java hype from reality Secrets Of The Masters: Core Java Interview Questions Serverpages.com"The Resource Directory for Server Side Scripting Technologies" Servlets.com JavaSkyline SpringJava/J2EE application framework Straight Talking Java mailing list JakartaStruts Sun's Java pages The Swing Connection Swing Online book Swing Labs Tapestry TheServerSide.com "Your J2EE Community" Thinking in JavabyBruce Eckel Thinlet "Thinlet is a GUI toolkit, a single Java class, parses the hierarchy and properties of the GUI, handles user interaction, and calls business logic. Separates the graphic presentation (described in an XML file) and the application methods (written as Java code)." JakartaVelocity Trails "Trails is a domain driven development framework in the spirit of Ruby on Rails or Naked Objects" Wicket web application framework Working with XML The Java XML Tutorial
 


November 11 2006
Amazing Honda Accord Ad

 


November 08 2006
Bloggers were invented in 300 AD


 


November 08 2006
Hide files in JPEG's
1. Gather your image and the files you wish to lodge into it. Here I have a meeting.txt which which I will slap inside my image_file.jpg 2. Add the text_file.txt (or files) you want to hide into a new RAR archive - text_file.txt.rar 3. Open Command Prompt 4. Go to the folder where your files are located, in this case 'C:\hidden' 5. Type 'copy /b image_file.jpg + text_file.txt.rar image_file_done.jpg' where image_file.jpg is the original picture, text_file.txt.rar is the file to be hidden, and image_file_done.jpg is the file which contains both. 6. Test the JPG by opening it, and verifying it still opens. If it does, try opening the file with WinRar 7. Open the completed RAR file!
 


November 07 2006
Alphabetical list of programming languages

<bigwig>

<bigwig> is a high-level programming language for developing interactive Web services. Complete specifications are compiled into a conglomerate of lower-level technologies such as HTML, CGI Scripts, JavaScript, HTTP Authentication, and Java Applets.

The <bigwig> Project

A+

[...] It embodies a rich set of functions and operators, a modern graphical user interface with many widgets and automatic synchronization of widgets and variables, asynchronous execution of functions associated with variables and events, dynamic loading of user compiled subroutines, and many other features. Execution is by a rather efficient interpreter. A+ was created at Morgan Stanley. Primarily used in a computationally-intensive business environment, many critical applications written in A+ have withstood the demands of real world developers over many years. Written in an interpreted language, A+ applications tend to be portable.

A+: a programming language for actual programmers

ABC

ABC is an interactive programming language and environment for personal computing, originally intended as a good replacement for BASIC. It was designed by first doing a task analysis of the programming task.

ABC is easy to learn (an hour or so for someone who has already programmed), and yet easy to use. Originally intended as a language for beginners, it has evolved into a powerful tool for beginners and experts alike.

A Short Introduction to the ABC Language

Ada

Ada is a computer programming language originally designed to support the construction of long-lived, highly reliable software systems. Its design emphasizes readability, avoids error-prone notation, encourages reuse and team coordination, and it is designed to be efficiently implementable.

A significant advantage of Ada is its reduction of debugging time. Ada tries to catch as many errors as reasonably possible, as early as possible. Many errors are caught at compile-time by Ada that aren't caught or are caught much later by other computer languages. Ada programs also catch many errors at run-time if they can't be caught at compile-time (this checking can be turned off to improve performance if desired). In addition, Ada includes a problem (exception) handling mechanism so that these problems can be dealt with at run-time.

The Home of the Brave Ada Programmers, AdaPower.com

Alan

Tool for creating interactive fiction. Alan has focused more on the authoring aspects than on the programming.

The Alan Home Pages

ALF

ALF is a language which combines functional and logic programming techniques. The foundation of ALF is Horn clause logic with equality which consists of predicates and Horn clauses for logic programming, and functions and equations for functional programming.

The ALF System

Algol

The youngest, and probably the most influental of the three big, classic languages. (The other two being Lisp and Fortran.)

Open Directory's entry on Algol

Alloy

ALLOY is a higher level parallel programming language appropriate for programming massively parallel computing systems. It is based on a combination of ideas from functional, object oriented and logic programming languages.

Alloy resources at ftp.funet.fi

Amiga E

E is a powerful and flexible object oriented / procedural / unpure functional higher programming language, mainly influenced by languages such as C++, Ada, Lisp etc., and Amiga E a very fast compiler for it, with features such as speed of >20000 lines/minute on a 7 Mhz amiga, inline assembler and linker integrated into compiler, large set of integrated functions, great module concept with v40 includes as modules, flexible type-system, quoted expressions, immediate and typed lists, parametric and inclusion polymorphism, exception handling, inheritance, data-hiding, methods, multiple return values, default arguments, register allocation, fast memory management, unification, LISP-Cells, gui-toolkit, (macro-) preprocessor, very intuitive and powerful source-level debugger, easy .library linking, and much more...

Amiga E on the Web

AMPL

A comprehensive and powerful algebraic modeling language for inear and nonlinear optimization problems, in discrete or continuous variables.

AMPL Modeling language for Mathematical programming

APL

Array Processing Language.

APL FAQ at University of Waterloo

AWK

awk is a programming language, named after its three original authors:
  • Alfred V. Aho
  • Brian W. Kernighan
  • Peter J. Weinberger
they write: "Awk is a convenient and expressive programming language that can be applied to a wide variety of computing and data-manipulation tasks."

The GNU Awk User's Guide

B

B is a computer language intended for recursive, primarily non-numeric applications typified by system programming.

User's Reference to B

BASIC

BASIC (standing for Beginner's All Purpose Symbolic Instruction Code) is a system developed at Dartmouth College in 1964 under the directory of J. Kemeny and T. Kurtz. It was implemented for the G.E.225. It was meant to be a very simple language to learn and also one that would be easy to translate. Furthermore, the designers wished it to be a stepping-stone for students to learn on of the more powerful languages such as FORTRAN or ALGOL.

The BASIC Archives, XST

BCPL

BCPL is a simple typeless language that was designed in 1966 by Martin Richards and implemented for the first time at MIT in the Spring of 1967.

BCPL, Martin Richards's BCPL Reference Manual, 1967

BETA

Object-oriented programming originated with the Simula language developed by Kristen Nygaard in Oslo in the 1960s. Since then, OOP has achieved great prominence with the commercial success of C++, Smalltalk, and Eiffel. Now, from the birthplace of OOP, comes the new BETA programming language, for which this book is both tutorial and reference. It provides a clear introduction to the basic concepts of OOP and an easy learning curve from simple programs to more advanced applications in BETA for students and programmers.

The BETA Home Page

Bliss

Rather low level language used, among other things, in the development of VMS.

BLISS Language Reference Manual

Blue

Blue is an object-oriented programming language that was developed especially for teaching. It runs in an integrated programming enviroment that includes a graphical program structure editor, a text editor, a debugger, a library browser, and more. It was developed for teaching ob[j]ect-oriented concepts to first-year students.

The Blue Page - Teaching Object Oriented Programming

Business Rules!

Business Rules! is the progeny of Workstation Basic. It will still support legacy applications and still maintains the emphasis on using minimal system resources that was so important early on. It has grown to incorporate many new technologies including advanced indexing, the ability to access platform-dependant devices directly with generic syntax calls, output spooling, externalization of functions (libraries), many platform-independent commands that mimic O.S. commands, Windows compatibility features and functionality, and much more.

Business Rules!

C

According to The New Hacker's Dictionary:

C /n./

1. The third letter of the English alphabet. 2. ASCII 1000011. 3. The name of a programming language designed by Dennis Ritchie during the early 1970s and immediately used to reimplement Unix; so called because many features derived from an earlier compiler named `B' in commemoration of its parent, BCPL. (BCPL was in turn descended from an earlier Algol-derived language, CPL.) Before Bjarne Stroustrup settled the question by designing C++, there was a humorous debate over whether C's successor should be named `D' or `P'. C became immensely popular outside Bell Labs after about 1980 and is now the dominant language in systems and microcomputer applications programming. See also languages of choice, indent style.

C is often described, with a mixture of fondness and disdain varying according to the speaker, as "a language that combines all the elegance and power of assembly language with all the readability and maintainability of assembly language".

C Resources on the web

C++

An extension to the C language developed primarily by B.Stroustrup at AT&T Bell Laboratories: it supports object-oriented programming among other enhancements.

WWW C++ Information

Cecil

Cecil is a purely object-oriented language intended to support rapid construction of high-quality, extensible software. Cecil incorporates multi-methods, a simple prototype-based object model, a mechanism to support a structured form of computed inheritance, module-based encapsulation, and a flexible static type system which allows statically- and dynamically-typed code to mix freely.

UW Cecil/Vortex Project

Centum

Centum is an interpreted language that is intended to make it easy to express algorithms in, and is a hybrid between functional programming and object oriented programming.

Centum

Charity

Charity is functional in style. That is, programmers familiar with declarative paradigms (functional and logic programmers) should find Charity easy to grasp.

Charity is based on the theory of strong categorical datatypes. These are divided into two subclasses: the inductive datatypes (built up by constructors in the familiar way) and the coinductive datatypes (broken down by destructors). Programs over these datatypes are expressed by folds (catamorphisms) and by unfolds (anamorphisms), respectively.

CHARITY - Home Page

CHILL

CHILL (CCITT High Level Language) is a general procedural programming language which is mainly used in the field of telecommunications. As a general programming language it is by no means limited to this field. A number of CHILL programming environments are also implemented in CHILL.

CHILL Homepage

CLAIRE

CLAIRE is a high-level functional and object-oriented language with advanced rule processing capabilities. It is intended to allow the programmer to express complex algorithms with fewer lines and in an elegant and readable manner.

CLAIRE - The Art of Elegant Programming

Clean

Lazy functional language.

Clean Homepage

COBOL

COmmon Business Oriented Language. Sometimes referred to as a subset of english, rather than a programming language.

Kobol, Fujitsu COBOL, Flexus COBOL

COMAL

COMon Algorithmic Language. Originally intended as a language for beginners. A language similar to BASIC with Pascal-like structure.

UniComal

Corn

This language is designed for modeling concurrency and advanced computation. It provides lazy evaluation in multithreating[sic] programs, with object-oriented and functional style of semanthic.

CORN Programming language

cT

The cT programming language is an algorithmic language like C, Pascal, Fortran, and Basic, but greatly enhanced by multimedia capabilities, including easy-to-use support for color graphics, mouse interactions, and even movies in QuickTime or Video for Windows format.

The cT Programming Language Archives

D

An evolutionary language that fuses parts of C,C++ and Java.

The D Programming Language, Book about D, D programming reference, D frontend for GCC, D compiler

DCL

«DIGITAL Command Language.» Used as the equivalent of a shell on the VMS operating system.

OpenVMS Documentation

Dylan

Dylan is a general-purpose high-level programming language, designed for use both in application and systems programming. Dylan includes garbage collection, run-time type checking, selective dynamism, error recovery, and a module system. These features simplify programming and support attractive debugging and development tools.

Gwydion Dylan

E

[...] secure distributed object platform and scripting language for writing Capability-Based Smart Contracts.

ERights.Org

Eiffel

Eiffel is an advanced object-oriented programming language that emphasizes the design and construction of high-quality and reusable software.

SmallEiffel The GNU Eiffel Compiler

elastiC

elastiC is a portable high-level object-oriented interpreted language with a C like syntax.

elastiC World

Elf

Elf is a constraint logic programming language based on the LF Logical Framework. [...] Elf is a uniform meta-language for specifying, implementing, and proving properties of programming languages and logics.

The Elf Meta-Language

Erlang

Erlang System/OTP is a platform-independent development environment as well as a runtime platform pioneered by Ericsson [...]

Erlang Systems, Erlang

Euphoria

Euphoria is a simple, flexible, and easy-to-learn programming language. It lets you quickly and easily develop programs for DOS and Windows. A Linux version is coming soon. [...] Although Euphoria provides subscript checking, uninitialized variable checking and numerous other run-time checks, it is extremely fast. People have used it to develop high-speed 32-bit DOS games, as well as 32-bit Windows programs.

The Official Euphoria Programming Page

Felix

Felix is new, high power, Open Source, community based programming language which provides an ML style type system with a syntax that C++ programmers should find easy to learn. It generates C++ and supports both use of C++ types as primitives, as well as embedding in existing C++ written architectures in a natural manner.

Felix

ferite

ferite is a scripting language and engine all in one managable chunk. It is designed to be easily extended in terms of API, and to be used within other applications making them more configurable and useful to the end user. It has a syntax similiar to a number of other langauges but remains clean and it's own language. [The description from the Debian package mentions Perl, Python, C, Java and Pascal as influences.]

ferite.org

Forth

Forth provides an interactive programming environment. Its primary uses have been in scientific and industrial applications such as instrumentation, robotics, process control, graphics and image processing, artificial intelligence and business applications. The principal advantages of Forth include rapid, interactive software development and efficient use of computer hardware.

Forth is often spoken of as a language because that is its most visible aspect. But in fact, Forth is both more and less than a conventional programming language: more in that all the capabilities normally associated with a large portfolio of separate programs (compilers, editors, etc.) are included within its range and less in that it lacks (deliberately) the complex syntax characteristic of most high-level languages.

Forth Information on Taygeta, The ForthFreak wiki

Fortran

One of the widely used, early languages. Big in number crunching programming.

Fortran related links

Fortress

Sun's attempt at a new HPC language.

Links "The Fortress Language Spec v0.618"

Fril

Fuzzy Relational Inference Language. Logic programming language closely related to Prolog, but adds fuzzy logic features.

Fril - Downloadable resources

GNU E

GNU E is a persistent, object oriented programming language developed as part of the Exodus project. GNU E extends C++ with the notion of persistent data, program level data objects that can be transparently used across multiple executions of a program, or multiple programs, without explicit input and output operations.

GNU E at ftp.cs.wisc.edu

Guile

Guile is an interpreter for the Scheme programming language, nicely packaged as a library you can link into your programs. Your program has full access to the interpreter's data structures, so you can extend Guile with your own primitives, datatypes and syntax. The result is a scripting language tailored to your application.

Guile

Gödel

Gödel is a declarative, general-purpose programming language in the family of logic programming languages. It is a strongly typed language, the type system being based on many-sorted logic with parametric polymorphism. It has a module system. Gödel supports infinite precision integers, infinite precision rationals, and also floating-point numbers. It can solve constraints over finite domains of integers and also linear rational constraints. It supports processing of finite sets. It also has a flexible computation rule and a pruning operator which generalises the commit of the concurrent logic programming languages. Considerable emphasis is placed on Gödel's meta-logical facilities which provide significant support for meta-programs that do analysis, transformation, compilation, verification, debugging, and so on.

The Gödel Programming Language

Haskell

Haskell is a `purely functional' language. Computation proceeds by replacing expressions with their value. While all computer languages incorporate functions to some degree, Haskell programs are composed solely of functions. Haskell is based on lambda calculus, hence the l we use as a logo. The language is named for the logician Haskell B. Curry, whose work provided much of the logical basis for our language.

Haskell

Hugo

Hugo is a text adventure compiler and runtime engine, written by Kent Tessman.

ftp://ftp.gmd.de/if-archive/programming/hugo/

ICI

ICI is a programming language with a dynamic, object based data model with the flow control constructs and operators of C. It is designed for use in many environments, including embedded systems, as an adjunct to other programs and as a text based interface to compiled libraries.

ICI at ftp.ntua.gr

Icon

Icon is a high-level, general-purpose programming language with a large repertoire of features for processing data structures and character strings. Icon is an imperative, procedural language with a syntax reminiscent of C and Pascal, but with semantics at a much higher level.

The Icon Programming Language

Inform

A design system for interactive fiction.

Inform, ftp://ftp.gmd.de/if-archive/programming/

J

J is a very high level general-purpose language, with a strong emphasis on functional programming and array processing. J was designed and developed by Ken Iverson and Roger Hui, and implemented by Iverson Software Inc (ISI).

J is distinguished by its simple and consistent rules, a large set of built-in functions, powerful facilities for defining new operations, and a general and systematic treatment of arrays. It is ideal for complex analytical work, modelling, and rapid application development.

J Software

Java

«Object-Oriented Programming for the Internet.»

JavaSoft Home Page

Joy

The language Joy is a purely functional programming language. Whereas all other functional programming languages are based on the application of functions to arguments, Joy is based on the composition of functions. All such functions take a stack as argument and produce a stack as value. Consequently much of Joy looks like ordinary postfix notation.

Main page for the programming language JOY

K

Kx Systems describes K as an application development kit integrating
  • a concise language with powerful primitives and math notations
  • a high performance data engine for bulk objects
  • a graphical user interface
  • built-in memory management
  • interprocess communications
  • web-server capabilities
  • connectivity features

Kx Systems

LabVIEW

NI LabVIEW is the graphical development environment for creating flexible and scalable test, measurement, and control applications rapidly and at minimal cost. With LabVIEW, engineers and scientists interface with real-world signals, analyze data for meaningful information, and share results and applications. Regardless of experience, LabVIEW makes development fast and easy for all users.

National Instruments LabVIEW page

Lava

an experimental object-oriented rapid application development (RAD) language with parameterized ("virtual") types, refactoring and component support, which replaces text editors completely by structure editors

LavaPE: The Object- and Component-Oriented Lava Program Development Environment

LIFE

LIFE (Logic, Inheritance, Functions, and Equations) is an experimental programming language proposing to integrate three orthogonal programming paradigms proven useful for symbolic computation. From the programmer's standpoint, it may be perceived as a language taking after logic programming, functional programming, and object-oriented programming. From a formal perspective, it may be seen as an instance (or rather, a composition of three instances) of a Constraint Logic Programming scheme due to Hoehfeld and Smolka refining that of Jaffar and Lassez.

CLiki for the TUNES project: LIFE entry

Limbo

Limbo is a programming language intended for applications running distributed systems on small computers. It supports modular programming, strong type checking at compile- and run-time, interprocess communication over typed channels, automatic garbage collection, and simple abstract data types. It is designed for safe execution even on small machines without hardware memory protection.

The Limbo Programming Language

Lingo

Lingo is a high level Windows programming language with automatic memory management, simple class structure, large library, working example programs, developer environment, dialog editor, compiler and debugger. [...] Lingo has been under development for about 10 years.

Learn to Program with Lingo!

LISP

According to The New Hacker's Dictionary:

LISP /n./

[from `LISt Processing language', but mythically from `Lots of Irritating Superfluous Parentheses'] AI's mother tongue, a language based on the ideas of (a) variable-length lists and trees as fundamental data types, and (b) the interpretation of code as data and vice-versa. Invented by John McCarthy at MIT in the late 1950s, it is actually older than any other HLL still in use except FORTRAN. Accordingly, it has undergone considerable adaptive radiation over the years; modern variants are quite different in detail from the original LISP 1.5. The dominant HLL among hackers until the early 1980s, LISP now shares the throne with C.

Note: HLL is an acronym for "High-Level Language" (as opposed to for instance assembler).

Common Lisp the Language, 2nd Edition

LOGO

Logo is a computer programming language designed for use by learners, including children. One of the ideas guiding its creation was the principle "low floor, high ceiling." This means that it should be easy for the novice programmer to get started (the "low floor") writing programs and getting satisfaction doing so, but that the language should be powerful and extensive in a "sky is the limit" sort of way (the "high ceiling").

LOGO computer programming language for learners

Lua

Lua is a programming language originally designed for extending applications, but also frequently used as a general-purpose, stand-alone language. Lua combines simple procedural syntax (similar to Pascal) with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, interpreted from bytecodes, and has automatic memory management with garbage collection, making it ideal for configuration, scripting, and rapid prototyping.

The Programming Language Lua

Matlab

MATLAB is an intuitive language and a technical computing environment. It provides core mathematics and advanced graphical tools for data analysis, visualization, and algorithm and application development.

The MathWorks: Developers of MATLAB

MC#

MC# - is a high-level object oriented programming language based on .NET Platform created specially for developing complex industrial program systems that could use multiprocessor architectures. It's an adaptation of the base idea of Polyphonic C# language (nowadays also known as Cdelta - Benton N., Cardelli L., Fournet C., Microsoft Research Laboratory, Cambridge, UK) for the case when we have concurrent distributed computations. This language has taken the best ideas from languages: C#, Polyphonic C# (nowadays known as C-Omega or C# 3.0) and T-System (T++ language).

MC# Home page

MCPL

MCPL is a simple typeless language which is based on BCPL. It makes extensive use of pattern matching somewhat related to that used in ML and Prolog, and some other features come from C.

MCPL

Mercury

Mercury is a new logic/functional programming language, which combines the clarity and expressiveness of declarative programming with advanced static analysis and error detection features. Its highly optimized execution algorithm delivers efficiency far in excess of existing logic programming systems, and close to conventional programming systems. Mercury addresses the problems of large-scale program development, allowing modularity, separate compilation, and numerous optimization/time trade-offs.

The Mercury home page

Miranda

The aim of the Miranda system is to provide a modern functional language, embedded in an `industrial quality' programming environment. It is now being used at a growing number of sites for teaching functional programming and as a vehicle for the rapid prototyping of software.

The Miranda Programming Language

ML

ML (which stands for Meta-Language) is a family of advanced programming languages with [usually] functional control structures, strict semantics, a strict polymorphic type system, and parametrized modules. It includes Standard ML, Lazy ML, CAML, CAML Light, and various research languages. Implementations are available on many platforms, including PCs, mainframes, most models of workstation, multi-processors and supercomputers. ML has many thousands of users, is taught at many universities (and is the first programming language taught at some).

A Gentle Introduction to ML

Modula-2

Modula-2 is a programming notation that corrects some of the deficiencies of Pascal. It is suitable for learning programming, for large projects written and maintained in the fashion of professional software engineers, and for real time embedded systems.

A FAQ on Modula-2

Modula-3

Modula-3 is a member of the Pascal family of languages. Designed in the late 1980s at Digital Equipment Corporation and Olivetti, Modula-3 corrects many of the deficiencies of Pascal and Modula-2 for practical software engineering. In particular, Modula-3 keeps the simplicity of type safety of the earlier languages, while providing new facilities for exception handling, concurrency, object-oriented programming, and automatic garbage collection. Modula-3 is both a practical implementation language for large software projects and an excellent teaching language.

Modula-3 Home Page, Modula-3 Resource Page

Nemerle

Nemerle is a high-level statically-typed programming language for the .NET platform. It offers functional, object-oriented and imperative features. It has a simple C#-like syntax and a powerful meta-programming system.

Nemerle home page

NeoBook

Multimedia authoring tool.

NeoSoft Corporation

NESL

NESL is a parallel language developed at Carnegie Mellon by the SCandAL project. It integrates various ideas from the theory community (parallel algorithms), the languages community (functional languages) and the system's community (many of the implementation techniques). The most important new ideas behind NESL are
  1. Nested data parallelism: this feature offers the benefits of data parallelism, concise code that is easy to understand and debug, while being well suited for irregular algorithms, such as algorithms on trees, graphs or sparse matrices [...].
  2. A language based performance model: this gives a formal way to calculated the work and depth of a program. These measures can be related to running time on parallel machines.

NESL: A Parallel Programming Language

NetRexx

NetRexx is a new human-oriented programming language, designed as an effective and simple alternative to the Java language. With NetRexx, you can create programs and applets for the Java environment faster and more easily than by programming in Java. Using Java classes is especially easy in NetRexx, as the different types of numbers and strings that Java expects are handled automatically by the language.

Inspired by two very different programming languages, Rexx and Java, NetRexx blends the easy-to-learn syntax of Rexx with the robustness and portability of the Java environment. The result is a language which is tuned for both scripting and application development, and is therefore truly general-purpose.

NetRexx at IBM

Oberon-2

Oberon-2 is a general-purpose programming language in the tradit ion of Pascal and Modula-2. Its most important features are block structure, modularity, separate compilation, static typing with strong type checking (also across module boundaries), and type extension with type-bound procedures.Type extension makes Oberon-2 an object-oriented language.

Optimizing Oberon-2 Compiler

Objective-C

Objective-C was designed by Brad J. Cox, whose primary purpose was to add the main features of SmallTalk-80 to the C language. His work led to an object-oriented language, with a complete programming enviroment inspired by SmallTalk-80, even comprising a large part of the later's basic library.

comp.lang.objective-c Newsgroup FAQs

Obliq

Obliq is a lexically-scoped untyped interpreted language that supports distributed object-oriented computation. An Obliq computation may involve multiple threads of control within an address space, multiple address spaces on a machine, heterogeneous machines over a local network, and multiple networks over the Internet. Obliq objects have state and are local to a site. Obliq computations can roam over the network, while maintaining network connections.

Obliq Quick Start

Occam

A programming language which facilitates writing parallel programs, allowing the programmer to specify whether processes are to be executed sequentially or in parallel. Based on CSP, it was originally developed for the Transputer.

The Occam Archive

Octave

GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab. It may also be used as a batch-oriented language.

Octave Home Page

Oz

[...] a concurrent object-oriented language with dataflow synchronization. Oz combines concurrent and distributed programming with logical constraint-based inference, [...]

The Mozart Programming System

Pascal

PASCAL is a programming language named after the 17th century mathematican Blaise Pascal. Pascal
  • provides a teaching language that highlights concepts common to all computer languages
  • standardises the language in such a way that it makes programs easy to write

Strict rules make it difficult for the programmer to write bad code!

Pascal Programming

Perl

Perl is an interpreted language optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. It's also a good language for many system management tasks. The language is intended to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, minimal). It combines (in the author's opinion, anyway) some of the best features of C, sed, awk, and sh, so people familiar with those languages should have little difficulty with it.

The Perl Language Home Page

Phantom (Phi)

Phantom is a new interpreted language designed to address some of the problems presented by large-scale, interactive, distributed applications such as distributed conferencing systems, multi-player games, and collaborative work tools. Phantom combines the distributed lexical scoping semantics of Obliq with a substantial language core.

Phantom Home Page

PHP

PHP Version 3.0 is an HTML-embedded scripting language. Much of its syntax is borrowed from C, Java and Perl with a couple of unique PHP-specific features thrown in. The goal of the language is to allow web developers to write dynamically generated pages quickly.

PHP: Hypertext Preprocessor

Pike (LPC)

Pike is a dynamic language with a syntax that looks like C. It is simple to learn, doesn't need long compilation passes and has powerful builtin data types that allows simple and fast data manipulation. Pike is GPL which means that anybody can fetch if for free and use it for almost any purpose they please.

Pike

PiXCL

PiXCL (PIxel-based eXtendable Command Language) is a [...] Windows scripting language that includes a large set of image processing commands and a TWAIN-device command set. It is intended to be used to quickly create image acquisition, display and processing applications. Includes string, integer, float, integer64 and double variable types and arrays. Comes in three versions: FreePiXCL (unrestricted, earlier demo version with 560 functions), PiXCL (700+ functions) and geoPiXCL (50+ extra image processing and analysis functions). All versions include an EXE compiler.

VYSOR Integration Inc

PL/B

The PL/B programming language, which was originally developed in 1972 as DATABUS(R), is currently the primary business programming language for over 250,000 workstations in over 40 countries and is supported by at least nine independent compiler companies on a broad range of hardware and operating systems.

PL/B supports highly interactive business application programming in individual and shared network environments. It has been developed to be easily learned in shorter time frames and by less experienced personnel than a majority of other standard languages. The language structure lends itself not only to easy code generation, but also to easy automated code analysis and reengineering which J15 feels are important considerations for future business programming environments.

Note: J15 is the technical committee for the development of the ANSI standard for PL/B.

J15 - Programming Language PL/B

PL/I

PL/I is a general-purpose programming language, which is used for solving problems in a variety of fields such as commerce, science (including mathematics, physics, chemistry), engineering (incl. civil, electrical, aeronautics), medicine and so on. It can be used for system programming, and the facilitites are such that it is rarely if ever necessary to resort to machine-language or high-level language programming to solve problems.

PL/I resources

Pliant

It's a bit difficult to describe what Pliant is, since it is more a new generation of language than an improvement in a given programming language family. The main idea behind Pliant: instead of building a slightly new language that has a few new interresting features, build a newer, very tiny language with a very simple syntax, where most advanced features can be written in the language itself, as modules.

Introduction to Pliant Programming Language

Postscript

PostScript is a programming language optimized for printing graphics and text (whether on paper, film, or CRT is immaterial). In the jargon of the day, it is a page description language. It was introduced by Adobe in 1985 and first (to my knowledge) appeared in the Apple LaserWriter. The main purpose of PostScript was to provide a convenient language in which to describe images in a device independent manner. This device independence means that the image is described without reference to any specific device features (e.g. printer resolution) so that the same description could be used on any PostScript printer (say, a LaserWriter or a Linotron) without modification.

A First Guide to Postscript

Prolog

PROgrammation en LOGique. Designed originally for natural-language processing.

Prolog Resource Guide

Python

Python is an interpreted, interactive, object-oriented programming language. It is often compared to Tcl, Perl, Scheme or Java.

Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high level dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, as well as to various windowing systems (X11, Motif, Tk, Mac, MFC, Gtk, Qt). New built-in modules are easily written in in C or C++. Python is also usable as an extension language for applications that need a programmable interface.

Python Language Home Page

Q

An Equational Programming Language. Q is a functional programming language based on term rewriting. Thus, a Q program or "script" is simply a collection of equations which are used to evaluate expressions in a symbolic fashion.

Sourceforge, Encyklopedic article, "This document describes the Q programming language and system, version 4.5, 14 October 2003. Written by Albert Gräf, University of Mainz."

R

R, also known as `GNU S', is a system for statistical computation and graphics. It consists of a language plus a run-time environment with graphics, a debugger, access to certain system functions, and the ability to run programs stored in script files. R implements a language which is not entirely unlike the S language developed at AT&T Bell Laboratories by Rick Becker, John Chambers and Allan Wilks. Indeed in the absence of an R manual, you can (mostly) get along by using the S manual.

The R Project for Statistical Computing

REBOL

REBOL Is...

In general terms, REBOL is a small, flexible language for sharing content (documents, databases, programs, multimedia) between people, computers, processes, and networks.

In technical terms, REBOL is a distributed object language which interprets symbolic, dynamically-scoped, relational environments. (You wanted to know... [...])

Home of the REBOL Language

Rexx

Rexx is a procedural programming language that allows programs and algorithms to be written in a clear and structured way. It is easy to use by experts and casual users alike. Rexx has been designed to make easy the manipulation of the kinds of symbolic objects that people normally deal with such as words and numbers. Although Rexx has the capability to issue commands to its host environment and to call programs and functions written in other languages, Rexx is also designed to be independent of its supporting system software when such commands are kept to a minimum.

Ian's Rexx title page, Rexx Language Association website

RPG

RPG (Report Program Generator) is a programming language that originated as a report-building program used in DEC and IBM minicomputer operating systems and evolved into a fully procedural programming language. Its latest version, RPG III, is supported by IBM's leading minicomputer system, the AS/400. Historically, RPG has probably been the second most used programming language, after COBOL, for commercial applications on mid-range computers.

Who Knew You Could Do That with RPG IV?

RPL/2

A descendant of Reverse Polish Lisp, obviously. Intended for symbolic and scientific computation. Almost fully compatible with RPL on HP-28S.

RPL/2

Ruby

Ruby is the interpreted scripting language for quick and easy object-oriented programming. It has many features to process text files and to do system management tasks (as in perl).

Ruby Home Page

S

S is a very high level language and an environment for data analysis and graphics. S was written by Richard A. Becker, John M. Chambers, and Allan R. Wilks of AT&T Bell Laboratories Statistics Research Department. More recently, other Bell Labs researchers have made major contributions to a new modeling capability in S. The S language is the form in which S users express their computations. The environment provides facilities for data management, support for many graphics devices, etc. S is useful for computation in a wide range of applications. It's a very general tool, so that applications are not restricted to any particular subject area.

A Guide to the S Language

Sather

Sather is an object oriented language designed to be simple, efficient, safe, flexible and non-proprietary. One way of placing it in the "space of languages" is to say that it aims to be as efficient as C, C++, or Fortran, as elegant as and safer than Eiffel, and support higher-order functions and iteration abstraction as well as Common Lisp, CLU or Scheme.

Sather home page

Scheme

Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis Steele Jr. and Gerald Jay Sussman. It was designed to have an exceptionally clear and simple semantics and few different ways to form expressions. A wide variety of programming paradigms, including imperative, functional, and message passing styles, find convenient expression in Scheme.

Scheme

Self

Designed for expressive power and malleability, Self combines a pure, prototype-based object model with uniform access to state and behavior. Unlike other languages, Self allows objects to inherit state and to change their patterns of inheritance dynamically.

The Self Project

SETL

SET Language. One of the few languages with sets as a basic data type.

/pub/languages/setl2 at cs.nyu.edu, Programming with Sets

Simula

SIMULA is an object-oriented programming language. It has been applied to almost all kinds of data processing.

The language was defined in 1967 in the "SIMULA Common Base Language". The language definition has been maintained by the SIMULA Standards Group (SSG), and the latest definition is found in the "SIMULA Standard", adopted by the SSG in 1986.

SIMULA has been implemented on almost all types of computers, ranging from large mainframes to workstations and PC's.

Simula history

Sisal

A High Performance, Portable, Parallel Programming Language.

Sisal Lives

Smalltalk

An early object-oriented language that arguably takes the idea of OO to an extreme. Designed to be extremely easily usable.

www.smalltalk.org Main Page

SNOBOL

SNOBOL is a special purposed language developed to provide a powerful means of doing character string manipulation. Accordingly SNOBOL has a collection of powerful operations for doing string pattern matchings. The most common early application of SNOBOL was to write text editors.

The SNOBOL Programming Language, SNOBOL LANGUAGE WEB PAGE

SR

SR (Synchronizing Resources) is a language for writing concurrent programs. The main language constructs are resources and operations. Resources encapsulate processes and variables they share; operations provide the primary mechanism for process interaction. SR provides a novel integration of the mechanisms for invoking and servicing operations. Consequently, all of local and remote procedure call, rendezvous, message passing, dynamic process creation, multicast, and semaphores are supported. SR also supports shared global variables and operations.

The SR Programming Language

TADS

TADS stands for "Text Adventure Development System".

ftp://ftp.gmd.de/if-archive/programming/tads/

Tcl

Tcl (Tool Command Language; pronounce "tickle") is a string-based scripting language and an interpreter for that language that is designed to be easy to embed in other applications.

Tcl Developer Site

Theta

Some of Theta's features are:
  • Separate type and class hierarchies.
  • Multiple super-types
  • Single inheritance
  • Constrained parametric polymorphism
  • Subtype polymorphism

Theta

TOM

An object oriented language derived from C. The language promotes usability, as opposed to reusability.

TOM

Turing

The Turing family of programming languages feature an easy to learn syntax that provides strong error checking to make programming easier. They include all of Pascal's features and more. While Turing is a completely "safe" language, providing no direct access to the hardware, it's extension, Object Oriented Turing, includes concurrency, exception handling, objects, classes and inheritance, and systems programming language features; it is an alternative to languages like C and Modula.

Turing and Object Oriented Turing Home Page

Visual Basic

Visual Basic was originally thought of as a replacement for the Windows shell, using insertable third party objects as components in the user interface. Microsoft bought the rights to the idea from Alan Cooper in 1988, and replaced the crude scripting language with a modified version of their QuickBasic, making it a programming language with a visual UI designer. The commercial product was released in 1992.

Visual Basic Instinct

WinBatch (WIL)

WinBatch is an easy-to-use yet very powerful programming tool - capable of automating any task involving Windows. Use it for simple tasks like connecting PC's to network servers, printing batch jobs out at odd hours, and much more.
  • Control for every Windows PC
  • Macros for every purpose
  • Works from desktop to Internet
At the heart of WinBatch is our Windows Interface Language (WIL). It's a high-level programming language for automating Windows; hundreds of Windows tasks are pre-coded for you. Operations that require pages of code in other programming languages are just a single function call in WinBatch.

Winbatch, the Batch Language for Windows

Yorick

The Yorick programming language includes scientific visualization functions (with output to your screen, PostScript, or binary CGM), text and binary I/O functions for reading and writing numbers by the millions, and basic linear algebra functions adapted from the LAPACK library.

Yorick

ZPL

ZPL is a new array programming language designed from first principles for fast execution on both sequential and parallel computers. [...] Users with scientific computing experience can generally learn ZPL in a few hours. Those who have used MATLAB or Fortran 90 may already be acquainted with array programming style.

The ZPL Parallell Programming Language Comment to let me know if I need to add anymore Thanks for stopping

 


November 18 2006
Six word stories for geeks
There is something about extreme brevity in the use of language that appeals to me. I suspect it comes from decades of fighting with command line interfaces of computer systems. How can I get this infernal machine to do complicated stuff using just a small number of commands? Anyone who keeps that question in their head for enough years becomes attracted to the arts of extreme brevity in language. From time to time, a meme breaks out in which extreme brevity techniques are used to summarize well-known books and films or to create a yet-to-be-created book/film in a few words. Some years ago, I remember reading this great example which captures the magnum opus known as the Lord of the Rings in just 11 words: "Short guy throws magic ring into volcano. Local lay-about becomes king." [1] In the last while, the concept of a six word story has caught a wave [2]. Create a short story using exactly six words. It is hard to beat Ernest Hemingway's fantastic: "For sale: baby shoes, never worn.". Eileen Gunn has written a nice geek-centric one that I quite like: " Computer, did we bring batteries? Computer?" [3]. Eileen's six word story got me thinking about taking our interactions with computer systems and using them to tell a story of sorts. I have thought of three so far. The first is entitled "Existential Angst Of a Sys Admin" and it goes likes this: who am I rm -rf ~/* The commands will run on most Unix machines but I would not advise it. The second is not directly executable as it involves working with a possibly graphical application interface. It is entitled "Ode to writer's block" and it goes like this: Edit. File Exit. Abandon Changes. Repeat. My final contribution is entitled "Becoming a father changes everything" and it goes like this: mv my_stuff /my_family/dads_stuff ping cigars.com No foray into the world of geeky brevity would be complete without referencing the phenomenon of Perl Poetry. I have purloined a personal favorite from that genre and edited it to suit my purposes to end this week's article. The piece is entitled "Jet lagged article writer" and it goes like this: think, write, think, do review (each word) if time. close article. sleep? what's that?
 


November 06 2006
GOD created the Bit and the Byte
1. In the beginning GOD created the Bit and the Byte. And from those he created the Word. 2. And there were two Bytes in the Word; and nothing else existed. And God separated the One from the Zero; and he saw it was good. 3. And God said - Let the Data be; And so it happened. And God said - Let the Data go to their proper places. And he created floppy disks and hard disks and compact disks. 4. And God said - Let the computers be, so there would be a place to put floppy disks and hard disks and compact disks. Thus God created computers and called them hardware. 5. And there was no Software yet. But God created programs; small and big... And told them - Go and multiply yourselves and fill all the Memory. 6. And God said -I will create the Programmer; And the Programmer will make new programs and govern over the computers and programs and Data. 7. And God created the Programmer; and put him at Data Center; And God showed the Programmer the Catalog Tree and said You can use all the volumes and subvolumes but DO NOT USE Windows. 8. And God said - It is not Good for the programmer to be alone. He took a bone from the Programmer's body and created a creature that would look up at the Programmer; and admire the Programmer; and love the things the Programmer does; and God called the creature: the User. 9. And the Programmer and the User were left under the naked DOS and it was Good. 10. But Bill was smarter than all the other creatures of God. And Bill said to the User - Did God really tell you not to run any programs? 11. And the User answered - God told us that we can use every program and every piece of Data but told us not to run Windows or we will die. 12. And Bill said to the User - How can you talk about something you did not even try. The moment you run Windows you will become equal to God. You will be able to create anything you like by a simple click of your mouse. 13. And the User saw that the fruits of the Windows were nicer and easier to use. And the User saw that any knowledge was useless - since Windows could replace it. 14. So the User installed the Windows on his computer; and said to the Programmers that it was good. 15. And the Programmer immediately started to look for new drivers. And God asked him - What are you looking for? And the Programmer answered - I am looking for new drivers because I can not find them in the DOS. And God said - Who told you need drivers? Did you run Windows? And the Programmer said - It was Bill who told us to! 16. And God said to Bill - Because of what you did you will be hated by all the creatures. And the User will always be unhappy with you. And you will always sell Windows. 17. And God said to the User - Because of what you did, the Windows will disappoint you and eat up all your Resources; and you will have to use lousy programs; and you will always rely on the Programmers help. 18. And God said to the Programmer - Because you listened to the User you will never be happy. All your programs will have errors and you will have to fix them and fix them to the end of time. 19. And God threw them out of the Data Center and locked the door and secured it with a 999-bytes password. 20. GENERAL PROTECTION FAULT
 


November 06 2006
25 Explanations by Programmers when their programs don't work.
1. Strange... 2. I've never heard about that. 3. It did work yesterday. 4. Well, the program needs some fixing. 5. How is this possible? 6. The machine seems to be broken. 7. Has the operating system been updated? 8. The user has made an error again. 9. There is something wrong in your test data. 10. I have not touched that module! 11. Yes yes, it will be ready in time. 12. You must have the wrong executable. 13. Oh, it's just a feature. 14. I'm almost ready. 15. Of course, I just have to do these small fixes. 16. It will be done in no time at all. 17. It's just some unlucky coincidense. 18. I can't test everything! 19. THIS can't do THAT. 20. Didn't I fix it already? 21. It's already there, but it has not been tested. 22. It works, but it's not been tested. 23. Somebody must have changed my code. 24. There must be a virus in the application software. 25. Even though it does not work, how does it feel?
 


November 06 2006
A developers cheat sheet

Databases / SQL Cheat Sheets

Language Cheat Sheets

Javascript

Version Control Cheat Sheets

Framework Cheat Sheets

Other cheetsheets

 


November 06 2006
Optimizing C and C++ Code
Embedded software often runs on processors with limited computation power, thus optimizing the code becomes a necessity. Here is the optimization techniques for C and C++ code developed for Real-time and Embedded Systems. 1. Adjust structure sizes to power of two 2. Place case labels in narrow range 3. Place frequent case labels first 4. Break big switch statements into nested switches 5. Minimize local variables 6. Declare local variables in the inner most scope 7. Reduce the number of parameters 8. Use references for parameter passing and return value for types bigger than 4 bytes 9. Don't define a return value if not used 10. Consider locality of reference for code and data 11. Prefer int over char and short 12. Define lightweight constructors 13. Prefer initialization over assignment 14. Use constructor initialization lists 15. Do not declare "just in case" virtual functions 16. In-line 1 to 3 line functions Many techniques discussed here have roots in the material we covered in the articles dealing with C to Assembly translation. A good understanding of the following articles will help: * C To Assembly Translation * C To Assembly Translation II * C To Assembly Translation III Adjust structure sizes to power of two When arrays of structures are involved, the compiler performs a multiply by the structure size to perform the array indexing. If the structure size is a power of 2, an expensive multiply operation will be replaced by an inexpensive shift operation. Thus keeping structure sizes aligned to a power of 2 will improve performance in array indexing. Place case labels in narrow range If the case labels are in a narrow range, the compiler does not generate a if-else-if cascade for the switch statement. Instead, it generates a jump table of case labels along with manipulating the value of the switch to index the table. This code generated is faster than if-else-if cascade code that is generated in cases where the case labels are far apart. Also, performance of a jump table based switch statement is independent of the number of case entries in switch statement. Place frequent case labels first If the case labels are placed far apart, the compiler will generate if-else-if cascaded code with comparing for each case label and jumping to the action for leg on hitting a label match. By placing the frequent case labels first, you can reduce the number of comparisons that will be performed for frequently occurring scenarios. Typically this means that cases corresponding to the success of an operation should be placed before cases of failure handling. Break big switch statements into nested switches The previous technique does not work for some compilers as they do not generate the cascade of if-else-if in the order specified in the switch statement. In such cases nested switch statements can be used to get the same effect. To reduce the number of comparisons being performed, judiciously break big switch statements into nested switches. Put frequently occurring case labels into one switch and keep the rest of case labels into another switch which is the default leg of the first switch. Splitting a Switch Statement // This switch statement performs a switch on frequent messages and handles the // infrequent messages with another switch statement in the default leg of the outer // switch statement pMsg = ReceiveMessage(); switch (pMsg->type) { case FREQUENT_MSG1: handleFrequentMsg1(); break; case FREQUENT_MSG2: handleFrequentMsg2(); break; . . . case FREQUENT_MSGn: handleFrequentMsgn(); break; default: // Nested switch statement for handling infrequent messages. switch (pMsg->type) { case INFREQUENT_MSG1: handleInfrequentMsg1(); break; case INFREQUENT_MSG2: handleInfrequentMsg2(); break; . . . case INFREQUENT_MSGm: handleInfrequentMsgm(); break; } } Minimize local variables If the number of local variables in a function is less, the compiler will be able to fit them into registers. Hence, it will be avoiding frame pointer operations on local variables that are kept on stack. This can result in considerable improvement due to two reasons: * All local variables are in registers so this improves performance over accessing them from memory. * If no local variables need to be saved on the stack, the compiler will not incur the overhead of setting up and restoring the frame pointer. Declare local variables in the inner most scope Do not declare all the local variables in the outermost function scope. You will get better performance if local variables are declared in the inner most scope. Consider the example below; here object a is needed only in the error case, so it should be invoked only inside the error check. If this parameter was declared in the outermost scope, all function calls would have incurred the overhead of object a's creation (i.e. invoking the default constructor for a). Local varialble scope int foo(char *pName) { if (pName == NULL) { A a; ... return ERROR; } ... return SUCCESS; } Reduce the number of parameters Function calls with large number of parameters may be expensive due to large number of parameter pushes on stack on each call. For the same reason, avoid passing complete structures as parameters. Use pointers and references in such cases. Use references for parameter passing and return value for types bigger than 4 bytes Passing parameters by value results in the complete parameter being copied on to the stack. This is fine for regular types like integer, pointer etc. These types are generally restricted to four bytes. When passing bigger types, the cost of copying the object on the stack can be prohibitive. In case of classes there will be an additional overhead of invoking the constructor for the temporary copy that is created on the stack. When the function exits the destructor will also be invoked. Thus it is efficient to pass references as parameters. This way you save on the overhead of a temporary object creation, copying and destruction. This optimization can be performed easily without a major impact to the code by replacing pass by value parameters by const references. (It is important to pass const references so that a bug in the called function does not change the actual value of the parameter. Passing bigger objects as return values also has the same performance issues. A temporary return object is created in this case too. Don't define a return value if not used The called function does not "know" if the return value is being used. So, it will always pass the return value. This return value passing may be avoided by not defining a return value which is not being used. Consider locality of reference for code and data The processor keeps data or code that is referenced in cache so that on its next reference if gets it from cache. These cache references are faster. Hence it is recommended that code and data that are being used together should actually be placed together physically. This is actually enforced into the language in C++. In C++, all the object's data is in one place and so is code. When coding is C, the declaration order of related code and functions can be arranged so that closely coupled code and data are declared together. Prefer int over char and short With C and C++ prefer use of int over char and short. The main reason behind this is that C and C++ perform arithmetic operations and parameter passing at integer level, If you have an integer value that can fit in a byte, you should still consider using an int to hold the number. If you use a char, the compiler will first convert the values into integer, perform the operations and then convert back the result to char. Lets consider the following code which presents two functions that perform the same operation with char and int. Compaing char and int operations char sum_char(char a, char b) { char c; c = a + b; return c; } int sum_int(int a, int b) { int c; c = a + b; return c; } A call to sum_char involves the following operations: 1. Convert the second parameter into an int by sign extension (C and C++ push parameters in reverse) 2. Push the sign extended parameter on the stack as b. 3. Convert the first parameter into an int by sign extension. 4. Push the sign extended parameter on to the stack as a. 5. The called function adds a and b 6. The result is cast to a char. 7. The result is stored in char c. 8. c is again sign extended 9. Sign extended c is copied into the return value register and function returns to caller. 10. The caller now converts again from int to char. 11. The result is stored. A call to sum_int involves the following operations: 1. Push int b on stack 2. Push int a on stack 3. Called function adds a and b 4. Result is stored in int c 5. c is copied into the return value register and function returns to caller. 6. The called function stores the returned value. Thus we can conclude that int should be used for all interger variables unless storage requirements force us to use a char or short. When char and short have to be used, consider the impact of byte alignment and ordering to see if you would really save space. (Many processors align structure elements at 16 byte boundaries) Define lightweight constructors As far as possible, keep the constructor light weight. The constructor will be invoked for every object creation. Keep in mind that many times the compiler might be creating temporary object over and above the explicit object creations in your program. Thus optimizing the constructor might give you a big boost in performance. If you have an array of objects, the default constructor for the object should be optimized first as the constructor gets invoked for every object in the array. Prefer initialization over assignment Consider the following example of a complex number:: Initialization and assignment void foo() { Complex c; c = (Complex)5; } void foo_optimized() { Complex c = 5; } In the function foo, the complex number c is being initialized first by the instantiation and then by the assignment. In foo_optimized, c is being initialized directly to the final value, thus saving a call to the default constructor of Complex. Use constructor initialization lists Use constructor initialization lists to initialize the embedded variables to the final initialization values. Assignments within the constructor body will result in lower performance as the default constructor for the embedded objects would have been invoked anyway. Using constructor initialization lists will directly result in invoking the right constructor, thus saving the overhead of default constructor invocation. In the example given below, the optimized version of the Employee constructor saves the default constructor calls for m_name and m_designation strings. Constructor initialization lists Employee::Employee(String name, String designation) { m_name = name; m_designation = designation; } /* === Optimized Version === */ Employee::Employee(String name, String designation): m_name(name), m_destignation (designation) { } Do not declare "just in case" virtual functions Virtual function calls are more expensive than regular function calls so do not make functions virtual "just in case" somebody needs to override the default behavior. If the need arises, the developer can just as well edit the additional base class header file to change the declaration to virtual. In-line 1 to 3 line functions Converting small functions (1 to 3 lines) into in-line will give you big improvements in throughput. In-lining will remove the overhead of a function call and associated parameter passing. But using this technique for bigger functions can have negative impact on performance due to the associated code bloat. Also keep in mind that making a method inline should not increase the dependencies by requiring a explicit header file inclusion when you could have managed by just using a forward reference in the non-inline version. (See the article on header file include patterns for more details). Related Links * C To Assembly Translation * C To Assembly Translation II * C To Assembly Translation III * Byte Alignment and Ordering * Header File Include Patterns * C++ to C Mapping
 


November 06 2006
Cisco router password recovery
The following procedure describes the process in recovering from a lost password on a Cisco 2500 router. The router must first be rebooted and a “break” performed within the first 60 seconds of the boot process. This break sequence can also vary depending on what program is used to access the router, but is the usual key combination. The router will now be in ROM Monitor mode. From the rom monitor prompt, change the default configuration register of 0x2102 to 0x2142 with the o/r 0x2142 command. Reload the router with the letter i. (As you can see, ROM Monitor mode is a lot different than working with the IOS!) This particular config register setting will cause the router to ignore the contents of NVRAM. Your startup configuration is still there, but it will be ignored on reload. When the router reloads, you’ll be prompted to enter Setup mode. Answer “N”, and type enable at the router> prompt. Be careful here. Type configure memory or copy start run. Do NOT type write memory or copy run start! Enter the command show running-config. You’ll see the passwords in either their encrypted or unencrypted format. Type config t, then use the appropriate command to set a new enable secret or enable password. Don’t forget to change the configuration register setting back to the original value! The command config-register 0x2102 will do the job. Save this change with write memory or copy run start, and then run reload one more time to restart the router.
 


November 05 2006
100 Oldest currently registered domains
Rank Create date Domain name 1. 15-Mar-1985 SYMBOLICS.COM 2. 24-Apr-1985 BBN.COM 3. 24-May-1985 THINK.COM 4. 11-Jul-1985 MCC.COM 5. 30-Sep-1985 DEC.COM 6. 07-Nov-1985 NORTHROP.COM 7. 09-Jan-1986 XEROX.COM 8. 17-Jan-1986 SRI.COM 9. 03-Mar-1986 HP.COM 10. 05-Mar-1986 BELLCORE.COM 11= 19-Mar-1986 IBM.COM 11= 19-Mar-1986 SUN.COM 13= 25-Mar-1986 INTEL.COM 13= 25-Mar-1986 TI.COM 15. 25-Apr-1986 ATT.COM 16= 08-May-1986 GMR.COM 16= 08-May-1986 TEK.COM 18= 10-Jul-1986 FMC.COM 18= 10-Jul-1986 UB.COM 20= 05-Aug-1986 BELL-ATL.COM 20= 05-Aug-1986 GE.COM 20= 05-Aug-1986 GREBYN.COM 20= 05-Aug-1986 ISC.COM 20= 05-Aug-1986 NSC.COM 20= 05-Aug-1986 STARGATE.COM 26. 02-Sep-1986 BOEING.COM 27. 18-Sep-1986 ITCORP.COM 28. 29-Sep-1986 SIEMENS.COM 29. 18-Oct-1986 PYRAMID.COM 30= 27-Oct-1986 ALPHACDC.COM 30= 27-Oct-1986 BDM.COM 30= 27-Oct-1986 FLUKE.COM 30= 27-Oct-1986 INMET.COM 30= 27-Oct-1986 KESMAI.COM 30= 27-Oct-1986 MENTOR.COM 30= 27-Oct-1986 NEC.COM 30= 27-Oct-1986 RAY.COM 30= 27-Oct-1986 ROSEMOUNT.COM 30= 27-Oct-1986 VORTEX.COM 40= 05-Nov-1986 ALCOA.COM 40= 05-Nov-1986 GTE.COM 42= 17-Nov-1986 ADOBE.COM 42= 17-Nov-1986 AMD.COM 42= 17-Nov-1986 DAS.COM 42= 17-Nov-1986 DATA-IO.COM 42= 17-Nov-1986 OCTOPUS.COM 42= 17-Nov-1986 PORTAL.COM 42= 17-Nov-1986 TELTONE.COM 42= 11-Dec-1986 3COM.COM 50= 11-Dec-1986 AMDAHL.COM 50= 11-Dec-1986 CCUR.COM 50= 11-Dec-1986 CI.COM 50= 11-Dec-1986 CONVERGENT.COM 50= 11-Dec-1986 DG.COM 50= 11-Dec-1986 PEREGRINE.COM 50= 11-Dec-1986 QUAD.COM 50= 11-Dec-1986 SQ.COM 50= 11-Dec-1986 TANDY.COM 50= 11-Dec-1986 TTI.COM 50= 11-Dec-1986 UNISYS.COM 61= 19-Jan-1987 CGI.COM 61= 19-Jan-1987 CTS.COM 61= 19-Jan-1987 SPDCC.COM 64. 19-Feb-1987 APPLE.COM 65= 04-Mar-1987 NMA.COM 65= 04-Mar-1987 PRIME.COM 67. 04-Apr-1987 PHILIPS.COM 68= 23-Apr-1987 DATACUBE.COM 68= 23-Apr-1987 KAI.COM 68= 23-Apr-1987 TIC.COM 68= 23-Apr-1987 VINE.COM 72. 30-Apr-1987 NCR.COM 73= 14-May-1987 CISCO.COM 73= 14-May-1987 RDL.COM 75. 20-May-1987 SLB.COM 76= 27-May-1987 PARCPLACE.COM 76= 27-May-1987 UTC.COM 78. 26-Jun-1987 IDE.COM 79. 09-Jul-1987 TRW.COM 80. 13-Jul-1987 UNIPRESS.COM 81= 27-Jul-1987 DUPONT.COM 81= 27-Jul-1987 LOCKHEED.COM 83. 28-Jul-1987 ROSETTA.COM 84. 18-Aug-1987 TOAD.COM 85. 31-Aug-1987 QUICK.COM 86= 03-Sep-1987 ALLIED.COM 86= 03-Sep-1987 DSC.COM 86= 03-Sep-1987 SCO.COM 89= 22-Sep-1987 GENE.COM 89= 22-Sep-1987 KCCS.COM 89= 22-Sep-1987 SPECTRA.COM 89= 22-Sep-1987 WLK.COM 93. 30-Sep-1987 MENTAT.COM 94. 14-Oct-1987 WYSE.COM 95. 02-Nov-1987 CFG.COM 96. 09-Nov-1987 MARBLE.COM 97= 16-Nov-1987 CAYMAN.COM 97= 16-Nov-1987 ENTITY.COM 99. 24-Nov-1987 KSR.COM 100. 30-Nov-1987 NYNEXST.COM
 


November 05 2006
Hello World
"Hello World" is the first program one usually writes when learning a new programming language. Here is a collection of 296 Hello World programs in many more-or-less well known programming languages. The list was compiled by Wolfram Rösler with help from many people around the world. It was started on 03-Oct-1994, put on the Internet on 30-Dec-1999, and exceeded 200 entries on 14-Jul-2005. It is administered as a bunch of text files which are compiled into this single HTML file by a bash script executed under the Cygwin environment, run on Windows.
1 1C-Enterprise
A ABAP4 Actionscript-Flash5 ActionScript-Flash8 Actionscript-FlashMX Ada Algol-60 Algol-68 Amiga-E APL AppleScript Argh! ASP-JavaScript ASP-VBE ASP-VBS Assembler-6502-AppleII Assembler-6502-C64 Assembler-68000-Amiga Assembler-68000-AtariST Assembler-68008 Assembler-DG-Nova Assembler-HLA Assembler-IBM-370 Assembler-Intel Assembler-Linux Assembler-MIPS Assembler-MMIX Assembler-PDP11 Assembler-PDP8 Assembler-VP Assembler-Win32 Assembler-z390 Assembler-Z80-Console Assembler-ZX81 Asterisk AutoIT3 AviSynth awk Axel
B B BAL BASIC bc BCPL Beta Boo BrainFxxx BS2000
C C# C++ C++-Epoc C++-ISO C++-MFC C++-Qt C-AL C-Ansi C-Curses C-GEM C-Intuition C-K+R C-Objective C-PresManager C-Windows C-X11-Athena CAML-Light Clean Clipper Cobol Cocoa ColdFusion CommandScript Console-Postscript CSS
D D Darkbasic Dataflex dBase dc Delphi Dialect DML DWIM Dylan DynaMorph
E Eiffel Elan Elliott Erlang Euphoria
F Ferite Fjölnir Focal FOCUS Forth Fortran Fortran77 Fortran90 FortranIV Frink
G G-Code Gambas Gentee-simple Gentee Gofer Gri Groovy GynkoSoft
H Haskell HDX HP-41C HP-48 HQ9+ HTML Human HyperTalk
I IBM-Exec IBM-Exec2 ici Icon IDC IDL Inform Informix-4GL Ingres-ABF InstallScript Intercal Io
J Jako Java Java-Mobile Java-Server-Pages Java-Servlet Java-Swing JavaScript JCL JudoScript
K Kylix
L LabVIEW LaTeX LibertyBASIC Limbo LIMS-Basic Lingo Lisp Lisp-Emacs Logo Logo-graphical LOTOS Lotus-Note-Formula Lotus-Script LS-DYNA LSL lua
M m4 MACRO-10 MACRO-11 Macromedia-Flex Malbolge MAMASH Maple Mathematica MATLAB MEL Microtik mIRC-Alias mIRC-Commandline mIRC-Script Modula-2 MoHAA-Script MPD MSDOS MSIL MuLisp Mumps
N Natural NewtonScript Nice NSIS
O Oberon.oberon Oberon.std OCaml Occam Octave Omnimark Ook OpenVMS OPL.dialog OPL.simple OZ
P Pascal Pascal-Windows PDF Perl PHP PHP+GD Piet Pike PL-SQL PL1 Pocket-Calculator POP-11 PostgreSQL Postscript POV-Ray PowerScript Profan Prograph Progress Prolog PureBasic-Console PureBasic-Messagebox PureBasic-Window Python
Q qore QuakeC QuickBASIC
R R ratfor REALbasic RealText Rebol-view Redcode REFAL-2 Regular-Expression Revolution Rexx.simple Rexx.window RPG-IV RSL Ruby
S S-Plus SAL SApp Sather Scala Scheme Seed7 Self SenseTalk Setl2 Shakespeare SilverBasic SIMPLE Simula Smalltalk.simple Smalltalk.window SMIL SML Snobol Spiral SPL SPSS SQL-Advantage SQL-Oracle SQL sqlplus ST-Guide SVG
T T-SQL TACL TAL Tcl TECO TeX Texinfo TI-59 TI-8x TI-BASIC-Extended TI-BASIC Tk troff TSO-CLIST Turing-Machine
U Unix-Shell unlambda UnrealScript
V Vatical VAX-11-Macro VAX-Macro Velocity Verilog Visual-FoxPro VisualBasic VisualBasic.NET VMS-DCL VRML VVVV
W Whitespace WSH
X X++ XHTML XML XQuery XSL-FO XSLT XUL

1C-Enterprise


// Hello World in 1C:Enterprise built-in script language

Message("Hello, World!");
Back to index

ABAP4

REPORT ZHB00001.
*Hello world in ABAP/4 *
WRITE: 'Hello world'.
Back to index

Actionscript-Flash5

// Hello World in Actionscript (up to Flash 5, IDE only)

trace ("Hello World");

Back to index

ActionScript-Flash8

// Hello World in ActionScript 2.0 (Flash 8)
class HelloWorld
{
    private var helloWorldField:TextField;
 
    public function HelloWorld( mc:MovieClip )
    {
        mc.helloWorldField = mc.createTextField("helloWorldField", mc.getNextHighestDepth(), 0, 0, 100, 100);
        mc.helloWorldField.autoSize = "left";
        mc.helloWorldField.htmlText = 'Hello World!';
    }
}

// on a frame
import HelloWorld;
var hw:HelloWorld = new HelloWorld( this );
Back to index

Actionscript-FlashMX

// Hello World in Actionscript (Flash MX onwards) 

_root.createTextField("mytext",1,100,100,300,100);
mytext.multiline = true;
mytext.wordWrap = true;
mytext.border = false;

myformat = new TextFormat();
myformat.color = 0xff0000;
myformat.bullet = false;
myformat.underline = true;

mytext.text = "Hello World!";
mytext.setTextFormat(myformat);
Back to index

Ada

-- Hello World in Ada

with Text_IO;
procedure Hello_World is

begin
  Text_IO.Put_Line("Hello World!");
end Hello_World;
Back to index

Algol-60


'BEGIN'
   'COMMENT' Hello World in Algol 60;
    OUTPUT(4,'(''('Hello World!')',/')')
'END'
Back to index

Algol-68

( # Hello World in Algol 68 # print(("Hello World!",newline)))
Back to index

Amiga-E

-> Hello World in Amiga-E

PROC main() IS WriteF('Hello World\n')

Back to index

APL

Hello World for APL. "[]" and "<-" are a single character in APL.
Comment character is Alt-comma.

[]<-'Hello World!'
Back to index

AppleScript


-- "Hello World" in AppleScript:

display dialog "Hello World"
Back to index

Argh!

Hello World in Argh!. No comment character exists.

j       World!
lpppppppPPPPPPq
 Hello, 

Back to index

ASP-JavaScript

Hello World for Microsoft ASP (in JavaScript)


<%@ language="javascript" %>

<%
Response.Write('Hello World!');
%>

Back to index

ASP-VBE






Back to index

ASP-VBS

Hello World for Microsoft ASP (in VBScript)

<%@ language="vbscript" %>

<%
Response.write "Hello World!"
%>

Back to index

Assembler-6502-AppleII

**********************************
*                                *
*      HELLO WORLD FOR 6502      *
*    APPLE ][, MERLIN ASSEMBLER  *
*                                *
**********************************

STROUT 	EQU	$DB3A ;OUTPUTS AY-POINTED NULL TERMINATED STRING
	LDY	#>HELLO
	LDA	#
Back to index

Assembler-6502-C64

; Hello World for 6502 Assembler (C64)

ldy #0
beq in
loop:
jsr $ffd2
iny
in:
lda hello,y
bne loop
rts
hello: .tx "Hello World!"
       .by 13,10,0
Back to index

Assembler-68000-Amiga

; Hello World in 68000 Assembler for dos.library (Amiga)

        move.l  #DOS
        move.l  4.w,a6
        jsr     -$0198(a6)      ;OldOpenLibrary
        move.l  d0,a6
        beq.s   .Out
        move.l  #HelloWorld,d1

A)      moveq   #13,d2
        jsr     -$03AE(a6)      ;WriteChars

B)      jsr     -$03B4          ;PutStr

        move.l  a6,a1
        move.l  4.w,a6
        jsr     -$019E(a6)      ;CloseLibrary
.Out    rts

DOS          dc.b    'dos.library',0
HelloWorld   dc.b    'Hello World!',$A,0
Back to index

Assembler-68000-AtariST

; Hello World in 68000 Assembler (Atari ST)

     move.l #helloworld,-(A7)
     move   #9,-(A7)
     trap   #1
     addq.l #6,A7
     move   #0,-(A7)
     trap   #1
helloworld:
     dc.b "Hello World!",$0d,$0a,0
Back to index

Assembler-68008

; Hello World in 68008 Assembler (Sinclar QL)

     move.l #0,a0
     lea.l  mess,a1
     move.w $d0,a2
     jsr    (a2)
     rts
mess dc.w   12
     dc.b   'Hello World!',10
     end
Back to index

Assembler-DG-Nova

                        .TITL HELLO
02                      ; "HELLO, WORLD" FOR NOVA RUNNING RDOS
03                      ; USES PCHAR SYSTEM CALL
04                      .NREL
05                      .ENT START
06
07              START:
08 00000'022424 DOCHAR: LDA 0,@PMSG     ; LOAD AC0 WITH NEXT CHARACTER,
09 00001'101015         MOV# 0,0,SNR    ; TEST AC0;
10 00002'000412          JMP DONE ; SKIPPED IF NONZERO
11 00003'006017         .SYSTM
12 00004'010000         .PCHAR          ; PRINT FIRST
13 00005'000413          JMP ER ; SKIPPED IF OK
14 00006'101300         MOVS 0,0        ; SWAP BYTES
15 00007'006017         .SYSTM
16 00010'010000         .PCHAR          ; PRINT SECOND
17 00011'000407          JMP ER ; SKIPPED IF OK
18 00012'010412         ISZ PMSG        ; POINT TO NEXT WORD
19 00013'000765         JMP DOCHAR      ; GO AROUND AGAIN
20
21 00014'006017 DONE:   .SYSTM          ; NORMAL EXIT
22 00015'004400         .RTN
23 00016'000402          JMP ER
24 00017'063077         HALT
25 00020'006017 ER:     .SYSTM          ; ERROR EXIT
26 00021'006400         .ERTN
27 00022'063077          HALT
28 00023'063077         HALT
29
30 00024'000025'PMSG:   .+1     ; ADDRESS OF FIRST WORD OF TEXT
31                      ; NOTE BYTES ARE PACKED RIGHT-TO-LEFT BY DEFAULT
32 00025'042510         .TXT /HELLO, WORLD!<15><12>/ ; THAT'S CR LF
33       046114
34       026117
35       053440
36       051117
37       042114
38       006441
39       000012
40 00035'000000         0 ; FLAG WORD TO END STRING
41
42                      .END START
Back to index

Assembler-HLA

; Hello World for Intel compatible High Level Assembler

program HELLO;
       #include( "stdlib.hhf" );
begin HELLO;
       stdout.put("Hello World",nl);
end HELLO;
Back to index

Assembler-IBM-370

ITLE 'Hello World for IBM Assembler/370 (VM/CMS)'
HELLO    START
BALR  12,0
USING *,12
*
WRTERM 'Hello World!'
*
SR    15,15
BR    14
*
END   HELLO
Back to index

Assembler-Intel

; Hello World for Intel Assembler (MSDOS)

mov ax,cs
mov ds,ax
mov ah,9
mov dx, offset Hello
int 21h
xor ax,ax
int 21h

Hello:
  db "Hello World!",13,10,"$"
Back to index

Assembler-Linux

	;; Hello World for the nasm Assembler (Linux)
	
	SECTION .data

	msg	db	"Hello, world!",0xa ; 
	len	equ     $ - msg

	SECTION .text
	global main

main:
        mov     eax,4		; write system call
        mov     ebx,1           ; file (stdou)
        mov     ecx,msg         ; string
        mov     edx,len         ; strlen
	int     0x80		; call kernel

	mov	eax,1		; exit system call
        mov     ebx,0      
        int     0x80		; call kernel
Back to index

Assembler-MIPS

## Hello Word in Assemlber for the MIPS Architecture

.globl main

main:   jal hwbody              #call Hello Word Procedure
       trap 10                 #exit

hwbody: addi $30, $30,-4        #we need to preserve
       sw $4, 0($30)           #existing values in register 4

       addi $4,$0,72           # H
       trap 101
       addi $4,$0,101          # e
       trap 101
       addi $4,$0,108          # l
       trap 101
       trap 101                # l
       addi $4,$0,111          # o
       trap 101
       addi $4,$0,32           # 
       trap 101
       addi $4,$0,87           # W
       trap 101
       addi $4,$0,111          # o
       trap 101
       addi $4,$0,114          # r
       trap 101
       addi $4,$0,108          # l
       trap 101
       addi $4,$0,100          # d
       trap 101
       addi $4,$0,33           # !
       trap 101
       addi $4,$0,10           # \n
       trap 101

done:   lw $4, 0($30)           #restore values
       addi $30, $30, 4        #in register 4
       jr $31                  #return to the main
Back to index

Assembler-MMIX

*	Hello World in Assembler 
*	for the MMIX Computer 

       LOC   #100
Main   GETA  $255,String
       TRAP  0,Fputs,StdOut
       TRAP  0,Halt,0
String BYTE  "Hello, world!",#a,0

Back to index

Assembler-PDP11

;       Hello World in Assembler for the DEC PDP-11 with the
;	RSX-11M-PLUS operating system
;
        .title Hello
        .ident /V0001A/
        .mcall qiow$s, exit$s
        .psect $code,ro,i
start:  qiow$s #5,#5,,,,<#str, #len, #40>
        exit$s
        .psect $data,ro,d
str:    .ascii / Hello World!/
        len=.-str
        .end start
Back to index

Assembler-PDP8

/ Hello World in Assembler for the DEC PDP-8
*200
hello,    cla cll
        tls            / tls to set printer flag.
        tad charac    / set up index register
        dca ir1        / for getting characters.
        tad m6        / set up counter for
        dca count    / typing characters.
next,    tad i ir1    / get a character.
        jms type    / type it.
        isz count    / done yet?
        jmp next    / no: type another.
        hlt

type,    0            / type subroutine
        tsf
        jmp .-1
        tls
        cla
        jmp i type
charac,    .            / used as initial value of ir1
        310 / H
        305 / E
        314 / L
        314 / L
        317 / O
        254 / ,
        240 /
        327 / W
        317 / O
        322 / R
        314 / L
        304 / D
        241 / !
m6,        -15
count,    0
ir1 = 10
$
Back to index

Assembler-VP

; Hello World in VP Assembler for intent (Amiga Anywhere)

.include 'tao'

tool 'home/hello',VP,TF_MAIN,8192,0
	ent (-:-)
		qcall lib/print,(hello_world.p : i~)
		ret ()
	entend

	data

hello_world:
	dc.b "Hello World!",ASCII_LF,0

toolend
Back to index

Assembler-Win32


; Hello world in Assembler for the Win32 architecture

TITLE Hello world in win32. Tasm

VERSION T310
Model use32 Flat,StdCall

start_code segment byte public 'code' use32
begin:
 Call MessageBox, 0, offset sHallo, offset caption, 0
 Call ExitProcess, 0
start_code Ends

start_data segment byte public 'data' use32

sHallo  db 'Hello world',0
caption	db "Hi",0

start_data Ends
End begin
Back to index

Assembler-z390

; Hello World for z390 IBM compatible mainframe assembler

HELLO CSECT
     USING *,15
     WTO 'Hello World'
     BR 14
     END
Back to index

Assembler-Z80-Console

; This is a "Hello World" program for Z80 and TMS9918 / TMS9928 / TMS9929 /
; V9938 or V9958 VDP.
; That means that this should work on SVI, MSX, Colecovision, Memotech,
; and many other Z80 based home computers or game consoles.
;
; Because we don't know what system is used, we don't know where RAM
; is, so we can't use stack in this program.
;
; This version of Hello World was written by Timo "NYYRIKKI" Soilamaa
; 17.10.2001
;
;----------------------------------------------------------------------
; Configure this part:

DATAP: EQU #98 ; VDP Data port #98 works on all MSX models
; (TMS9918/TMS9929/V9938 or V9958)
; #80 works on SVI 
; (for other platforms you have to figure this out by your self)

CMDP: EQU #99 ; VDP Command port #99 works on all MSX models
; (TMS9918/TMS9929/V9938 or V9958)
; #81 works on SVI
; (for other platforms you have to figure this out by your self)
;-----------------------------------------------------------------------
; Program starts here:

ORG 0 ; Z80 starts always from here when power is turned on
DI ; We don't know, how interrupts works in this system, so we disable them.

; Let's set VDP write address to #0000
XOR A
OUT (CMDP),A
LD A,#40
OUT (CMDP),A

; Now let's clear first 16Kb of VDP memory
LD B,0
LD HL,#3FFF
LD C,DATAP
CLEAR:
OUT (C),B
DEC HL
LD A,H
OR L
NOP ; Let's wait 8 clock cycles just in case VDP is not quick enough.
NOP
JR NZ,CLEAR

; Now it is time to set up VDP registers:
;----------------------------------------
; Register 0 to #0
;
; Set mode selection bit M3 (maybe also M4 & M5) to zero and 
; disable external video & horizontal interrupt
LD C,CMDP
LD E,#80

OUT (C),A
OUT (C),E
;---------------------------------------- 
; Register 1 to #50
;
; Select 40 column mode, enable screen and disable vertical interrupt

LD A,#50
INC E
OUT (C),A
OUT (C),E
;---------------------------------------- 
; Register 2 to #0
;
; Set pattern name table to #0000

XOR A
INC E
OUT (C),A
OUT (C),E
;---------------------------------------- 
; Register 3 is ignored as 40 column mode does not need color table
;
INC E
;---------------------------------------- 
; Register 4 to #1
; Set pattern generator table to #800

INC A
INC E

OUT (C),A
OUT (C),E
;---------------------------------------- 
; Registers 5 (Sprite attribute) & 6 (Sprite pattern) are ignored 
; as 40 column mode does not have sprites

INC E
INC E
;---------------------------------------- 
; Register 7 to #F0
; Set colors to white on black

LD A,#F0
INC E
OUT (C),A
OUT (C),E
;----------------------------------------

; Let's set VDP write address to #808 so, that we can write
; character set to memory
; (No need to write SPACE it is clear char already)
LD A,8
OUT (C),A
LD A,#48
OUT (C),A

; Let's copy character set
LD HL,CHARS
LD B, CHARS_END-CHARS
COPYCHARS:
LD A,(HL)
OUT (DATAP),A
INC HL
NOP ; Let's wait 8 clock cycles just in case VDP is not quick enough.
NOP
DJNZ COPYCHARS

; Let's set write address to start of name table
XOR A
OUT (C),A
LD A,#40
OUT (C),A

; Let's put characters to screen
LD HL,ORDER
LD B,ORDER_END-ORDER
COPYORDER:
LD A,(HL)
OUT (DATAP),A
INC HL

JR OVERNMI
NOP
NOP

; Here is address #66, that is entry for NMI
RETN ;Return from NMI

OVERNMI:
DJNZ COPYORDER

; The end
HALT

; Character set:
; --------------
ORDER:
DEFB 1,2,3,3,4,0,5,4,6,3,7
ORDER_END:

CHARS:

; H
DEFB %10001000
DEFB %10001000
DEFB %10001000
DEFB %11111000
DEFB %10001000
DEFB %10001000
DEFB %10001000
DEFB %00000000
; e
DEFB %00000000
DEFB %00000000
DEFB %01110000
DEFB %10001000
DEFB %11111000
DEFB %10000000
DEFB %01110000
DEFB %00000000
; l
DEFB %01100000
DEFB %00100000
DEFB %00100000
DEFB %00100000
DEFB %00100000
DEFB %00100000
DEFB %01110000
DEFB %00000000
; o
DEFB %00000000
DEFB %00000000
DEFB %01110000
DEFB %10001000
DEFB %10001000
DEFB %10001000
DEFB %01110000
DEFB %00000000
; W
DEFB %10001000
DEFB %10001000
DEFB %10001000
DEFB %10101000
DEFB %10101000
DEFB %11011000
DEFB %10001000
DEFB %00000000

; r
DEFB %00000000
DEFB %00000000
DEFB %10110000
DEFB %11001000
DEFB %10000000
DEFB %10000000
DEFB %10000000
DEFB %00000000
; d
DEFB %00001000
DEFB %00001000
DEFB %01101000
DEFB %10011000
DEFB %10001000
DEFB %10011000
DEFB %01101000
DEFB %00000000
chars_end:
Back to index

Assembler-ZX81

; Hello World in Assembler for the ZX81 (Zilog Z80)

          CALL SPRINT
          DEFM HELLO WORLD.
          DEFB FF
          RET
SPRINT    POP HL
          LD A,(HL)
          INC HL
          PUSH HL
          CP FF
          RET Z
          CALL PRINT
          JR SPRINT
Back to index

Asterisk

;; Hello World application for an Asterisk dial plan. Asterisk is a
;; GNU GPL telephony server. More details at http://www.asterisk.org

;; Displays Hello World at the Asterisk console if in verbose mode
exten => _X.,1,NoOp(Hello World)

Back to index

AutoIT3

;Hello, World for AutoIT3  http://www.autoitscript.com

msgbox(0,"Hello World",0)
Back to index

AviSynth

Hello World for AviSynth Video Editor.
Requires AVI and WAV file.

video = AVISource("someoneSayingHelloWorld.avi")
sound_track = WAVSource("someoneSayingHelloWorld.wav")
AudioDub(video, sound_track)
subtitle("Hello World!")
Back to index

awk

# Hello World in awk
BEGIN {
  print "Hello World!"
  exit
}
Back to index

Axel

Hello World in AXEL (lip-synched speech)

... too large for this page, can be found here:
http://medieskolan.avc.edu.stockholm.se/axel/index.htm
Back to index

B

/* Hello World in B */

main() {
  extern a, b, c;
  putchar (a); putchar (b); putchar (c); putchar ('!*n');
}

a 'hell' ;
b 'o, w' ;
c 'orld' ;
Back to index

BAL

Hello World in IBM mainframe Basic Assembler Language (BAL)

HELLO    CSECT
         STM   R14,R12,12(R13)
         LR    R12,R15
         USING HELLO,R12
         LA    R10,SAVEAREA
         ST    R13,4(R10)
         ST    R10,8(R13)
         LR    R13,R10
*
         WTO   'HELLO WORLD',ROUTCDE=1
*
         L     R13,4(R13)
         LM    R14,R12,12(R13)
         SR    R15,R15
         BCR   B'1111',R14
*
SAVEAREA DS    18F
         LTORG
R0       EQU   0
R1       EQU   1
R2       EQU   2
R3       EQU   3
R4       EQU   4
R5       EQU   5
R6       EQU   6
R7       EQU   7
R8       EQU   8
R9       EQU   9
R10      EQU   10
R11      EQU   11
R12      EQU   12
R13      EQU   13
R14      EQU   14
R15      EQU   15
         END   HELLO
Back to index

BASIC

10 REM Hello World in BASIC
20 PRINT "Hello World!"
Back to index

bc

#!/usr/bin/bc -q
# Hello World for the Unix "bc" calculator

print "Hello World!\n"
Back to index

BCPL

// Hello world in BCLP
GET "libhdr"

LET start() = VALOF
$( writes("Hello world*N")
   RESULTIS 0
$)
Back to index

Beta

{ *** Hello World in BETA ***}
(#
  do
     'Hello World!'->putLine
#)
Back to index

Boo

# Hello World in Boo
print "Hello World"
Back to index

BrainFxxx

Hello World in BrainF***. No comment character exists.

++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Back to index

BS2000

/BEGIN-PROCEDURE LOGGING=N
/REMARK "HELLO WORLD" IN BS2000 (SDF)
/ASSIGN-SYSDTA TO-FILE=*SYSCMD
/WRITE-TEXT 'HELLO WORLD!'
/SET-JOB-STEP
/ASSIGN-SYSDTA TO-FILE=*PRIMARY
/END-PROCEDURE
Back to index

C#

// Hello World in Microsoft C# ("C-Sharp").

using System;

class HelloWorld
{
    public static int Main(String[] args)
    {
        Console.WriteLine("Hello, World!");
        return 0;
    }
}
Back to index

C++

// Hello World in C++

#include 

main()
{
    cout << "Hello World!" << endl;
    return 0;
}
Back to index

C++-Epoc

// Hello World in C++, Epoc style (for Symbian OS)

#include 
#include 
#include 

class CHelloWorldAppUi;
class CEikApplication;
class CHelloWorldAppView;

class CHelloWorldApplication : public CEikApplication
    {
        public:
            TUid AppDllUid() const;
        protected:
            CApaDocument* CreateDocumentL();
    };

class CHelloWorldDocument : public CEikDocument
    {
        public:
            static CHelloWorldDocument* NewL(CEikApplication& aApp);
            static CHelloWorldDocument* NewLC(CEikApplication& aApp);
            ~CHelloWorldDocument(){};
        public:
            CEikAppUi* CreateAppUiL();
        private:
            void ConstructL() {};
            CHelloWorldDocument(CEikApplication& aApp){};
    };

class CHelloWorldAppUi : public CEikAppUi
    {
        public:
                void ConstructL();
                CHelloWorldAppUi(){};
                ~CHelloWorldAppUi(){};
    };

static const TUid KUidHelloWorldApp = {0x10005B91};

GLDEF_C TInt E32Dll(TDllReason )
    {
    return KErrNone;
    }

EXPORT_C CApaApplication* NewApplication() 
    {
    return (new CHelloWorldApplication);
    }

CApaDocument* CHelloWorldApplication::CreateDocumentL()
    {  
    CApaDocument* document = CHelloWorldDocument::NewL(*this);
    return document;
    }

TUid CHelloWorldApplication::AppDllUid() const
    {
    return KUidHelloWorldApp;
    }
    
CHelloWorldDocument* CHelloWorldDocument::NewL(CEikApplication& aApp)
    {
    CHelloWorldDocument* self = NewLC(aApp);
    CleanupStack::Pop(self);
    return self;
    }

CHelloWorldDocument* CHelloWorldDocument::NewLC(CEikApplication& aApp)
    {
    CHelloWorldDocument* self = new (ELeave) CHelloWorldDocument(aApp);
    CleanupStack::PushL(self);
    self->ConstructL();
    return self;
    }

CEikAppUi* CHelloWorldDocument::CreateAppUiL()
    {
    CEikAppUi* appUi = new (ELeave) CHelloWorldAppUi;
    return appUi;
    }

void CHelloWorldAppUi::ConstructL()
    {
    BaseConstructL();

    _LIT(message,"Hello!");
    CAknInformationNote* informationNote = new (ELeave) CAknInformationNote;
    informationNote->ExecuteLD(message);
    }

Back to index

C++-ISO

// Hello World in ISO C++

#include 

int main()
{
    std::cout << "Hello World!" << std::endl;
}
Back to index

C++-MFC

// Hello World in C++ for Microsoft Foundation Classes
// (Microsoft Visual C++).

#include 

class CHello : public CFrameWnd
{
public:
    CHello()
    {
        Create(NULL,_T("Hello World!"),WS_OVERLAPPEDWINDOW,rectDefault);
    }
};

class CHelloApp : public CWinApp
{
public:
    virtual BOOL InitInstance();
};

BOOL CHelloApp::InitInstance()
{
    m_pMainWnd = new CHello();
    m_pMainWnd->ShowWindow(m_nCmdShow);
    m_pMainWnd->UpdateWindow();
    return TRUE;
}

CHelloApp theApp;
Back to index

C++-Qt

// Hello World in C++ for the Qt framework

#include 
#include 

int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  QLabel l("Hello World!", 0);
  l.setCaption("Test");
  l.setAlignment(Qt::AlignCenter);
  l.resize(300, 200);
  a.setMainWidget(&l);
  l.show();
  return(a.exec());
}
Back to index

C-AL

OBJECT Codeunit 50000 HelloWorld
{
  PROPERTIES
  {
    OnRun=BEGIN
            //Hello World in C/AL (Microsoft Business Solutions-Navision)
            MESSAGE(Txt001);
          END;
  }
  CODE
  {
    VAR
      Txt001@1000000000 : TextConst 'ENU=Hello World';
    BEGIN
    END.
  }
}
Back to index

C-Ansi

/* Hello World in C, Ansi-style */

#include 
#include 

int main(void)
{
  puts("Hello World!");
  return EXIT_SUCCESS;
}

Back to index

C-Curses

/* Hello World in C for Curses */

#include 
main()
{
  initscr();
  addstr("Hello World!\n");
  refresh();
  endwin();
  return 0;
}
Back to index

C-GEM

/* Hello World for C with GEM */

#include 
main()
{
  appl_init();
  form_alert(1,"[0][Hello World!][Ok]");
  appl_exit();
  return 0;
}
Back to index

C-Intuition

/* Hello World in C for Intution (Amiga GUI) */

#include 

struct IntuitionBase *IntuitionBase = NULL;

struct IntuiText hello_text = {-1,-1,JAM1,0,0,NULL,"Hello World!",NULL };
struct IntuiText ok_text    = {-1,-1,JAM1,0,0,NULL,"Ok",NULL };

void main(void)
{
   IntuitionBase = (struct IntuitionBase *)
                   OpenLibrary("intuition.library", 0);
   AutoRequest(NULL, &hello_text, NULL, &ok_text, NULL, NULL, 100, 50);
   CloseLibrary(IntuitionBase);
}

Back to index

C-K+R

/* Hello World in C, K&R-style */

main()
{
  puts("Hello World!");
  return 0;
}
Back to index

C-Objective


/* Hello World in Objective-C.
** Since the standard implementation is identical to K&R C,
** a version that says hello to a set of people passed on
** the command line is shown here.
*/

#include 
#include 
int main(int argc,char **argv)
{
    id set = [Set new];
    argv++;while (--argc) [set add:[String str:*argv++]];
    [set do:{ :each | printf("hello, %s!\n",[each str]); }];
    return 0;
}
Back to index

C-PresManager

/* Hello World for C with PresentationManager / OS/2 2.11  */

#define INCL_WIN

#include 

int main( void )
{
   HMQ   hmq;

   hmq = WinCreateMsgQueue( 0, 0 );

   WinMessageBox( HWND_DESKTOP, HWND_DESKTOP, (PSZ)"Hello World!",
      (PSZ)"", 0, MB_OK );

   WinDestroyMsgQueue( hmq );

   return 0;
}
Back to index

C-Windows

/* Hello world in C for MS-Windows */

#include 

int PASCAL WinMain(HINSTANCE hInstance,
  HINSTANCE hPrevInstance, LPSTR CmdLine, int Show)
{
  MessageBox(GetActiveWindow(), "Hello World!", "Hello Windows World", MB_OK);
  return 0;
}
Back to index

C-X11-Athena

/* Hello World in C with X11 using Athena widgets */

#include 
#include 
#include 

main(int argc,char **argv)
{
  XtAppContext app_context;
  Widget toplevel,hello;

  toplevel = XtVaAppInitialize(&app_context,"XHello",NULL,0,
    &argc,argv,NULL,NULL);
  hello = XtVaCreateManagedWidget("Hello World!",labelWidgetClass,
    toplevel,(void*)0);

  XtRealizeWidget(toplevel);

  XtAppMainLoop(app_context);
  return 0;
}

Back to index

CAML-Light

(* Hello World in CAML Light *)

let hello =
   print_string "Hello World!";
;;
Back to index

Clean

// Hello World in Clean

module hello

Start :: String
Start = "Hello World!\n"
Back to index

Clipper

// Hello World in Clipper (Summer 87, 5.0, 5.01, 5.2, 5.3)

? "Hellp World"
Back to index

Cobol

       * Hello World in Cobol

*****************************
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
MAIN SECTION.
DISPLAY "Hello World!"
STOP RUN.
****************************
Back to index

Cocoa

// Hello World in Cocoa Obj-C (OS X)

#import 

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    NSLog(@"Hello, World!");
    [pool release];
    return 0;
}
Back to index

ColdFusion




 #message#
Back to index

CommandScript

#Hello World in Command Script 3.1
#Meta.Name: "Hello World"

#Block(Main).Start
    echo "Hello World!"
#Block(Main).End
Back to index

Console-Postscript

%% Hello World in Console PostScript

serverdict begin 0 exitserver
/Courier findfont
48 scalefont setfont
22 22 moveto
(Hello World!) show
showpage

%% End
Back to index

CSS


/* Hello World in CSS */
body:before {
    content: "Hello World";
}
Back to index

D

// Hello World in D

void main()
{
    printf("Hello World!\n");
}
Back to index

Darkbasic

` Hello World in Darkbasic

print "Hello World!"
wait key

Back to index

Dataflex

// Hello World in Dataflex Procedural

/tela

Hello world

/*

clearscreen

page tela
Back to index

dBase

* Hello World in dBase IV

? "Hello World!"
Back to index

dc

#!/usr/bin/dc
# Hello world! in dc (Unix desk calculator)
[Hello world!]p
Back to index

Delphi

// Hello World in Delphi
Program Hello_World;

{$APPTYPE CONSOLE}

Begin
  WriteLn('Hello World');
End.
Back to index

Dialect

# Hello World in Dialect

print "Hello World"
Back to index

DML

! Hello World in DML (Gembase database language)

PROCEDURE_FORM MAIN
        PRINT/NOWAIT ("Hello world")
END_FORM
Back to index

DWIM

Hello World in DWIM ("Do what I mean").
Comments are not necessary in this language.

DWIM
Back to index

Dylan

module:			hello-world
author:			Homer
copyright:		(c) 1994 Homer
version:		1.0

// Hello World in DYLAN

define method main (#rest args)
  princ("Hello world!");
end;

main();
Back to index

DynaMorph

<>
<#setString foo {Hello World!}#>


	DynaMorph



<#getString foo#>


Back to index

Eiffel

indexing "Hello World in Eiffel"

class HELLO

creation
   run

feature

   run is
     local
       io : BASIC_IO;
     do
       !!io;
       io.put_string("Hello World!");
       io.put_newline;
     end; -- run

end; -- class HELLO
Back to index

Elan

(* Hello World in ELAN *)

putline ("Hello World!");
Back to index

Elliott

:: Hello World in Elliott Autocode
SETF PUNCH
SETR 1
1)TELEPRINTER
LINE
TITLE Hello World.;
STOP
START 1
Back to index

Erlang

%% Hello World in Erlang

-module(hello).

-export([hello/0]).

hello() ->
   io:format("Hello World!~n", []).
Back to index

Euphoria

-- Hello World in Euphoria

puts(1, "Hello World!\n")
Back to index

Ferite

/**
 *   start script -- Hello world in Ferite ( www.ferite.org )
 */
uses "console";
Console.println("Hello World");
/* end script */
Back to index

Fjölnir

;; Hello World in Fjölnir (Icelandic programming language)

"hello" < main
{
   main ->

   stef(;)
   stofn
       skrifastreng(;"Halló Veröld!"),
   stofnlok
}
*
"GRUNNUR"
;
Back to index

Focal

1.01 COMMENT HELLO WORLD IN FOCAL
1.02 TYPE "HELLO WORLD", !
1.03 QUIT
Back to index

FOCUS


-* Hello World in FOCUS

-TYPE Hello world
Back to index

Forth

' Hello World in Forth

: HELLO
  ." Hello World!" CR
;
Back to index

Fortran

C     Hello World in Fortran

      PROGRAM HELLO
      WRITE (*,100)
      STOP
  100 FORMAT (' Hello World! ' /)
      END

Back to index

Fortran77

C     Hello World in Fortran 77

      PROGRAM HELLO
      PRINT*, 'Hello World!'
      END
Back to index

Fortran90

! Hello World in Fortran 90 and 95

PROGRAM HelloWorld
     WRITE(*,*)  "Hello World!"
END PROGRAM
Back to index

FortranIV

       PROGRAM HELLO
c
C      Hello World in Fortran IV (supposedly for a TR440)
c
       WRITE (6,'('' Hello World!'')')
       END
Back to index

Frink

// Hello World in Frink

println["Hello World!"]
Back to index

G-Code

Hello World in "G Code" for CNC machines.

Click here for a preview.

%
O1000
(PROGRAM NAME - HELLOWORLD)
(DATE=DD-MM-YY - 30-06-05 TIME=HH:MM - 19:37)
N10G20
N20G0G17G40G49G80G90
/N30G91G28Z0.
/N40G28X0.Y0.
/N50G92X0.Y0.Z0.
( 1/16 FLAT ENDMILL TOOL - 1 DIA. OFF. - 1 LEN. - 1 DIA. - .0625)
(CONTOUR)
N60T1M6
N70G0G90X0.Y1.A0.S5000M3
N80G43H1Z.5
N90Z.25
N100G1Z-.005F2.
N110Y0.F20.
N120G0Z.5
N130X.5
N140Z.25
N150G1Z-.005F2.
N160Y1.F20.
N170G0Z.5
N180Y.6106
N190Z.25
N200G1Z-.005F2.
N210X0.F20.
N220G0Z.5
N230X.6157Y.4712
N240Z.25
N250G1Z-.005F2.
N260X.6039Y.4135F20.
N270X.6Y.351
N280X1.1
N290G3X1.0098Y.6202R.4333
N300X.8941Y.6971R.2625
N310X.7255Y.6538R.1837
N320X.6157Y.4712R.332
N330G0Z.5
N340X.6Y.351
N350Z.25
N360G1Z-.005F2.
N370X.6039Y.2885F20.
N380G3X.7255Y.0481R.385
N390X.9745R.1853
N400X1.0843Y.2308R.332
N410G0Z.5
N420X1.2039Y0.
N430Z.25
N440G1Z-.005F2.
N450Y1.F20.
N460G0Z.5
N470X1.3098
N480Z.25
N490G1Z-.005F2.
N500Y0.F20.
N510G0Z.5
N520X1.4706Y.125
N530Z.25
N540G1Z-.005F2.
N550X1.502Y.0817F20.
N560G3X1.6176Y.0048R.2625
N570X1.7863Y.0481R.1837
N580X1.9118Y.351R.3957
N590X1.8216Y.6202R.4333
N600X1.7059Y.6971R.2625
N610X1.5373Y.6538R.1837
N620X1.4157Y.4135R.358
N630X1.4706Y.125R.4611
N640G0Z.5
N650X1.9853Y0.
N660Z.25
N670G1Z-.005F2.
N680X2.0422Y.1442F20.
N690G0Z.5
N700X2.5706Y1.
N710Z.25
N720G1Z-.005F2.
N730X2.6961Y0.F20.
N740X2.8216Y1.
N750X2.9451Y0.
N760X3.0706Y1.
N770G0Z.5
N780X3.2961Y.6538
N790Z.25
N800G1Z-.005F2.
N810X3.2608Y.6202F20.
N820G3X3.1745Y.2885R.4408
N830X3.2961Y.0481R.385
N840X3.5451R.1853
N850X3.6706Y.351R.3957
N860X3.5804Y.6202R.4333
N870X3.4647Y.6971R.2625
N880X3.2961Y.6538R.1837
N890G0Z.5
N900X3.7461Y.7019
N910Z.25
N920G1Z-.005F2.
N930Y0.F20.
N940G0Z.5
N950Y.3654
N960Z.25
N970G1Z-.005F2.
N980X3.7637Y.4663F20.
N990G2X3.8422Y.6587R.4948
N1000X3.9167Y.7019R.0929
N1010G1X4.0755
N1020G2X4.15Y.6587R.0929
N1030X4.1951Y.5769R.246
N1040G0Z.5
N1050X4.3255Y1.
N1060Z.25
N1070G1Z-.005F2.
N1080Y0.F20.
N1090G0Z.5
N1100X4.9275
N1110Z.25
N1120G1Z-.005F2.
N1130Y1.F20.
N1140G0Z.5
N1150X5.0314
N1160Z.25
N1170G1Z-.005F2.
N1180Y.2981F20.
N1190G0Z.5
N1200X4.9275Y.274
N1210Z.25
N1220G1Z-.005F2.
N1230X4.8941Y.1731F20.
N1240G2X4.7627Y.0192R.3255
N1250X4.5529Y.0481R.1862
N1260X4.4314Y.2885R.358
N1270X4.5176Y.6202R.4408
N1280X4.6333Y.6971R.2625
N1290X4.802Y.6538R.1837
N1300X4.8941Y.5288R.3457
N1310G1X4.9275Y.4279
N1320G0Z.5
N1330X5.0314Y.149
N1340Z.25
N1350G1Z-.005F2.
N1360Y0.F20.
N1370G0Z.5
N1380M5
N1390G91G28Z0.
N1400G28X0.Y0.A0.
N1410M30
%

Back to index


Gambas

'************************************
' Hello world in Gambas
'************************************
PUBLIC SUB Main()

   PRINT "Hello World"

END
Back to index

Gentee-simple

// Hello World in Gentee (simple version)

func hello
: @"Hello, World!"
Back to index

Gentee

// Hello World in Gentee

func hello 
{ print( "Hello, World!" ) getch() }
Back to index

Gofer


-- Hello World in Gofer
-- Simple version

helloWorld:: String
helloWorld = "Hello World!\n"


-- Hello World in Gofer
-- Dialog version

helloWorld :: Dialogue
helloWorld resps = [AppendChan stdout "Hello world!"]
Back to index

Gri

# Hello World in Gri
show "hello world"
Back to index

Groovy

// Hello World in Groovy

println "Hello World"

Back to index

GynkoSoft

; Hello World in GynkoSoft
; Simple version
0.00 Protocol "Hello, World!"


; Hello World in GynkoSoft
; Dialog box output
0.00 Message "Hello, World!"
Back to index

Haskell

-- Hello World in Haskell

module Hello where
hello::String
hello = "Hello World!"
Back to index

HDX

# Hello World as bdehaldia.exe external command

proc hdx_info {} {
  set ::Titel "&Hello World"
  set ::Menu GMA
}

proc hdx_run {} {
  tk_messageBox -type ok -message "Hello World!"
  destroy .
}
Back to index

HP-41C

Hello World for the HP 41C. No comment character exists.

01 LBL "HELLO"
02 "HELLO WORLD"
03 AVIEW

Back to index

HP-48

<<
@ Hello World for the HP-48
@ << and >> are one char each
"HELLO WORLD"
>>
Back to index

HQ9+

Hello World in HQ9+ and HQ9++. No comment character exists.

H
Back to index

HTML





Hello World!


Hello World!


Back to index

Human

Hello World in human languages.

Armenian Բարե՛ւ, աշխարհ։ (barev ash'kharh)
Azeri Salam Dünya
Czech Ahoj Světe!
Basque/Euskara Kaixo mundua!
Belarusian (Pryvitan'ne, Swet!)
Bengali Shagatam Prithivi!
Bosnian Zdravo Svijete!
Brazilian Portuguese Oi mundo!
Bulgarian (Zdrav'ei svi'at)
Catalan Hola món!
Chinese (ni hao shi jie)
Croatian Bok Svijete!
Danish Hej, Verden!
Dutch Hallo, wereld!
English Hello World!
Estonian Tere maailm!
Finnish Hei maailma!
French Salut le Monde!
Frisian Hallo, wrâld!
Galician Ola mundo!
German Hallo Welt!
Greek Γεια σου κόσμε! (Geia soy kosme)
Hebrew (Shalom Olam)
Hindi (namaste duniya)
Hungarian Szia Vilag!
Indonesian Halo Dunia!
Irish Dia dhaoibh, a dhomhain!
Italian Ciao Mondo!
Japanese (konnichiwa sekai)
Kannada (namaste prapancha)
Korean (annyeong, sesangah)
Latvian Sveika, Pasaule!
Lithuanian Sveikas, Pasauli
Malagasy Manao ahoana ry tany!
Norwegian Hallo Verden!
Polish Witaj, Swiecie!
Portuguese Ola mundo!
Romanian Salut lume!
Russian (Zdra'vstvuj mi'r)
Serbian Zdravo Svete!
Slovak Ahoj, svet!
Slovenian Pozdravljen svet!
Spanish ˇHola mundo!
Swedish Hejsan värld!
Tamil (Vanakkam Ulake!)
Turkish Merhaba Dünya!
Ukrainian (Pryvi't svi'te)

Back to index


HyperTalk

-- Hello World in HyperTalk

answer "Hello, world!"

Back to index

IBM-Exec

Hello World for IBM EXEC (under VM/CMS)

&CONTROL
*
&TYPE Hello World!
*
&EXIT 0
Back to index

IBM-Exec2

Hello World for IBM EXEC2 (under VM/CMS)

&TRACE OFF
*
&TYPE Hello World!
*
&EXIT 0
Back to index

ici

# Hello World in ici (http://www.zeta.org.au/~atrn/ici/)
printf("Hello World!\n");
Back to index

Icon

# Hello world in Icon (http://www.cs.arizona.edu/icon/)

procedure main()
    write("Hello world")
end
Back to index

IDC


// Hello World in IDC-script language for IDA disaasembler

#include 

static main(void)
{
  Message("Hello World!");
}
Back to index

IDL

IDL> ; Hello World in IDL (Interactive Data Language)
IDL> print, "Hello World"

Back to index

Inform

!  "Hello world" in Inform
[ Main;
  print "Hello world^";
];
Back to index

Informix-4GL

# Hello World in Informix 4GL

MAIN

  DISPLAY "Hello World"

END MAIN
Back to index

Ingres-ABF

/* Hello World in Ingres ABF */
procedure hello =
begin
  message 'Hello, World' with style=popup;
end
Back to index

InstallScript

// Hello World in InstallScript
// (Scripting language of InstallShield, a Windows install generator)

program
	MessageBox("Hello World!",INFORMATION);
endprogram
Back to index

Intercal

      HELLO WORLD IN INTERCAL NOT FORTRAN

      HELLO WORLD
Back to index

Io

// Hello World in io programming language
"Hello world!" print
Back to index

Jako

# Hello World in Jako

use sys;

sys::print("Hello, world!\n");
Back to index

Java

// Hello World in Java

import java.io.*;
class HelloWorld {
  static public void main( String args[] ) {
    System.out.println( "Hello World!" );
  }
}
Back to index

Java-Mobile

// Hello World on a mobile Java device

package helloworld;

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class HelloWorld extends MIDlet {

  public HelloWorld()
  {
    Form form = new Form("Hello World");
    form.append("Hello world!");
    Display.getDisplay(this).setCurrent(form);
  }

  protected void pauseApp() {  }
  protected void startApp() throws
    javax.microedi

Credits
 


November 05 2006
What Sex is YOUR Computer
A language instructor was explaining to her class that French nouns, unlike their English counterparts, are grammatically designated as masculine or feminine. Things like 'chalk' or 'pencil,' she described, would have a gender association although in English these words were neutral. Puzzled, one student raised his hand and asked, "What gender is a computer?" The teacher wasn't certain which it was, and so divided the class into two groups and asked them to decide if a computer should be masculine or feminine. One group was comprised of the women in the class, and the other, of men. Both groups were asked to give four reasons for their recommendation. The women concluded that computers should be referred to in the masculine gender because: 1. In order to get their attention, you have to turn them on. 2. They have a lot of data but are still clueless. 3. They are supposed to help you solve your problems, but half the time they ARE the problem. 4. As soon as you commit to one, you realize that, if you had waited a little longer, you could have had a better model. The men, on the other hand, concluded that computers should definitely be referred to in the feminine gender because: 1. No one but their creator understands their internal logic. 2. The native language they use to communicate with other computers is incomprehensible to everyone else. 3. Even your smallest mistakes are stored in long-term memory for later retrieval. 4. As soon as you make a commitment to one, you find yourself spending half your paycheck on accessories for it.
 


November 04 2006
PodTech vs PodTech
Q: What is the difference between the homepage of podtech.net and podtech blog? A: There is no difference. No awards for that as it does not take a trained eye or a blogger or a techie trained eye to note there is no difference. Agreed the previous homepage for podtech.net was a little dry, but now Podtech.net looks more like a blog than a corporate website or for that matter a media corporate website. Nothing much needs to be done but a little of rearranging would do just fine. And a point to end this, the change of website has come in when Robert Scoble joined PodTech.net, probably a reason for the media corporate website to project a blog look.
 


November 04 2006
Things you should know but probably don't
1 . Money isn't made out of paper, it's made out of cotton. 2. The Declaration of Independence was written on hemp (marijuana) paper. 3. The dot over the letter i is called a "tittle". 4. A raisin dropped in a glass of fresh champagne will bounce up and down continuously from the bottom of the glass to the top. 5. Susan Lucci is the daughter of Phyllis Diller. 6. 40% of McDonald's profits come from the sales of Happy Meals. 7. 315 entries in Webster's 1996 Dictionary were misspelled. 8. The 'spot' on 7UP comes from its inventor, who had red eyes. He was albino. 9. On average, 12 newborns will be given to the wrong parents, daily. 10. Warren Beatty and Shirley MacLaine are brother and sister. 11. Chocolate affects a dog's heart and nervous system; a few ounces will kill a small sized dog. 12. Orcas (killer whales) kill sharks by torpedoing up into the shark's stomach from underneath, causing the shark to explode. 13. Most lipstick contains fish scales (eeww). 14. Donald Duck comics were banned from Finland because he doesn't wear pants. 15. Ketchup was sold in the 1830's as medicine. 16. Upper and lower case letters are named 'upper' and 'lower' because in the time when all original print had to be set in individual letters, the upper case' letters were stored in the case on top of the case that stored the smaller, 'lower case' letters. 17. Leonardo DaVinci could write with one hand and draw with the other at the same time hence, multi-tasking was invented.) 18. Because metal was scarce, the Oscars given out during World War II were made of wood. 19. There are no clocks in Las Vegas gambling casinos. 20. The name Wendy was made up for the book Peter Pan; there was never a recorded Wendy before! 21. There are no words in the dictionary that rhyme with: orange, purple, and silver! 22. Leonardo DaVinci invented scissors. Also, it took him 10 years to paint Mona Lisa's lips. 23. A tiny amount of liquor on a scorpion will make it instantly go mad and sting itself to death. 24. The mask used by Michael Myers in the original "Halloween" was a Captain Kirk's mask painted white. 25. If you have three quarters, four dimes, and four pennies, you have $1.19 You also have the largest amount of money in coins without being able to make change for a dollar (good to know.) 26. By raising your legs slowly and lying on your back, you can't sink in quicksand (and you thought this list was completely useless.) 27. The phrase "rule of thumb" is derived from an old English law, which stated that you couldn't beat your wife with anything wider than your thumb. 28. The first product Motorola started to develop was a record player for automobiles. At that time, the most known player on the market was the Victrola, so they called themselves Motorola. 29. Celery has negative calories! It takes more calories to eat a piece of celery than the celery has in it to begin with. It's the same with apples! 30. Chewing gum while peeling onions will keep you from crying! 31. The glue on Israeli postage stamps is certified kosher.. 32. Guinness Book of Records holds the record for being the book most often stolen from Public Libraries. 33. Astronauts are not allowed to eat beans before they go into space because passing wind in a space suit damages it. 34. George Carlin said it best about Martha Stewart .. "Boy, I feel a lot safer now that she's behind bars. O. J. Simpson and Kobe Bryant are still walking around; Osama Bin Laden too, but they take the ONE woman in America willing to cook, clean, and work in the yard, and they haul her fanny off to jail."
 


November 04 2006
Rules for Flying umm....Successfully
1. Every takeoff is optional. Every landing is mandatory. 2. If you push the stick forward, the houses get bigger. If you pull the stick back, they get smaller. That is, unless you keep pulling the stick all the way back, then they get bigger again. 3. Flying isn't dangerous. Crashing is what's dangerous. 4. It's always better to be down here wishing you were up there than up there wishing you were down here. 5. The ONLY time you have too much fuel is when you're on fire. 6. The propeller is just a big fan in front of the plane used to keep the pilot cool. When it stops, you can actually watch the pilot start sweating. 7. When in doubt, hold on to your altitude. No one has ever collided with the sky. 8. A 'good' landing is one from which you can walk away. A 'great' landing is one after which they can use the plane again. 9. Learn from the mistakes of others. You won't live long enough to make all of them yourself. 10. You know you've landed with the wheels up if it takes full power to taxi to the ramp. 11. The probability of survival is inversely proportional to the angle of arrival. Large angle of arrival, small probability of survival and vice versa. 12. Never let an aircraft take you somewhere your brain didn't get to five minutes earlier. 13. Stay out of clouds. The silver lining everyone keeps talking about might be another airplane going in the opposite direction. Reliable sources also report that mountains have been known to hide out in clouds. 14. Always try to keep the number of landings you make equal to the number of takeoffs you've made. 15. There are three simple rules for making a smooth landing. Unfortunately no one knows what they are. 16. You start with a bag full of luck and an empty bag of experience. The trick is to fill the bag of experience before you empty the bag of luck. 17. Helicopters can't fly; they're just so ugly the earth repels them. 18. If all you can see out of the window is ground that's going round and round and all you can hear is commotion coming from the passenger compartment, things are not at all as they should be. 19. In the ongoing battle between objects made of aluminum going hundreds of miles per hour and the ground going zero miles per hour, the ground has yet to lose. 20. Good judgment comes from experience. Unfortunately, the experience usually comes from bad judgment. 21. It's always a good idea to keep the pointy end going forward as much as possible. 22. Keep looking around. There's always something you've missed. 23. Remember, gravity is not just a good idea. It's the law. And it's not subject to repeal. 24. The three most useless things to a pilot are the altitude above you, runway behind you, and a tenth of a second ago.
 


November 04 2006
The VisiCalc Song
[ala' "Let's Get Physical", made popular by Olivia Newton-John] I'm savin' all of those back issues of "Byte" Making the micro conversion I gotta handle text just right Ya know what I mean? I took you to a local computer store Then to a compu-fair shopping spree There's nothing left to purchase now 'less it's, programmability... [BEGIN Chorus (invoked later)] Let's get VisiCalc*, VisiCalc I wanna get Visi-Calc, let's invoke VisiCalc Let me hear your modem talk, your floppies squawk Let me hear your I/O rock... [END Chorus] I've used paper, I've used wood Tried to keep my pen on the table It's getting hard, this hardware stuff Ya know what I mean? I'm sure you understand what eleven's* do You know the software intimately You gotta know, you're bringing out the VisiPlot* for me...
 


November 03 2006
Virigins Timeline
1968 First issue of student magazine 1970 Start of Virgin Mail Order operation 1971 First Virgin record shop opens in Oxford Street, London 1972 First Virgin Recording Studio opens at 'The Manor' near Oxford 1973 Launch of Virgin Record Label. Virgin Music Publishing is established 1977 Virgin Records signs the Sex Pistols 1984 Virgin Atlantic Airways and Virgin Cargo are born 1985 Virgin Holidays is formed 1987 Virgin Records America is founded. 1988 Virgin Megastores opens new stores. Virgin Hotels launches. 1990 Virgin Megastores arrives in Japan 1991 Virgin Publishing (Virgin Books) is formed 1992 Virgin Records is sold to Thorn EMI 1993 Virgin Radio hits the airwaves with Virgin 1215AM 1994 Launch of Virgin Vodka and Virgin Cola 1995 Virgin Direct Personal Financial Services opens for business. 1996 V2 Music is created. Virgin.Net launches. Virgin Trains is launched. 1997 Virgin Radio is acquired by Chris Evans. Virgin Cosmetics launches 1999 Virgin Mobile launches Virgin's first telecomms venture. 2000 V.shop, Virgin cars, Virgin Wines and Virgin Travelstore all launch2001 Virgin Money brand is created. Virgin Experience launches 2002 Virgin Money introduces the Virgin Credit card. Virgin Mobile in the USA.2003 V.Shops merges completely with Virgin Megastores 2004 Virgin announces the launch of Virgin Galactic - developing space tourism for everybody 2005 Virgin Mobile launches in Canada 2006 Two new businesses in South Africa - Mobile and Money
 


November 03 2006
10 Terrible Tech Terms
1. Dongle (The trouble seems to be with your dongle, sir.) 2. Wall wart (Three guesses: Wal-Mart's nickname, a nasty disease contracted from walls, or a mall power-supply brick with a male plug.) 3. PMP (Are you a Portable Media Player PIMP?) 4. Nybble (A set of four bits.) 5. Hotswapping (Sounds dirty and sweaty, but it's the ability to remove and replace components of a computer while it is operating.) 6. Blu-ray (Poor Ray. This disc formatting war has made him blue!) 7. Burst mode (Would you really want a mode named "burst" in your camera?) 8. RAID (Redundant Array of Independent (or Inexpensive) Disks, or bug spray.) 9. PUS (Potentially Unwanted Software that just sounds gross.) 10. Wiki (We're all familiar with Wikipedia, but the actual term comes from the Hawaiian word "hurry up". Okay. . .)
 


November 01 2006
Microsoft moves to embrace PHP, So What, Who Cares
According to Zend, once PHP is optimized for Windows, which will be accomplished by January 2007, it will run at speeds comparable to what it already achieves on Linux platforms. PHP, the most widely used web development scripting language, has always run faster on Linux servers than on Windows servers. Microsoft aims to change that by forming a partnership with Zend Technologies whose founders played key roles in the development of the open source PHP language. But according to everyone else, PHP by then will have unlimited patches, IIS will have unlimited patches, this will further make everyone move to linux and apache. Why would a SMB even go for IIS considering the cost. It is easier to get apache, PHP, MySql running. Managing AMP is a breeze.
 


November 01 2006
Worst Company URLs
Now who would think of such urls geeeezzzz A site called ‘Who Represents’ where you can find the name of the agent that represents a celebrity. Their domain name… wait for it… is - www.whorepresents.com Looking for a pen? Look no further than Pen Island at - www.penisland.net Need a therapist? Try Therapist Finder at - www.therapistfinder.com Then of course, there’s the Italian Power Generator company… - www.powergenitalia.com And now, we have the Mole Station Native Nursery, based in New South Wales: - www.molestationnursery.com Welcome to the First Cumming Methodist Church. - www.cummingfirst.com
 


November 01 2006
Copy an Excel formula without changing its cell references
You could copy the formula to the clipboard as text before pasting it to its new location. Follow these steps: 1. Click on the cell containing the formula you want to copy. 2. Press [F2]. 3. Click and drag to select the entire formula. 4. Click the Copy button in the Standard toolbar. 5. Press [Enter]. 6. Select the cell into which you want to paste the formula. 7. Click the Paste button in the Standard toolbar.
 


November 01 2006
25 ways to get promoted
1. Written communication – If you want to move up in any organization, you must be able to construct a well thought out, grammatically correct, spell-checked memorandum, e-mail, report, bid response, project plan, etc. This can be a weakness for many in IT, and it is something that has to be worked on if it does not come naturally to you. 2. Verbal communication – As important as it is to write clearly and concisely, you also have to be able to speak clearly; it does not matter if your audience is one person or a hundred. No stuttering, no ums, ahs, or jargon. No mumbling, staring at the floor, or hiding behind a document. You need to be able to convey that you know what you are talking about and that you have confidence in yourself. 3. Be a self starter – Go to your supervisor and find work. If you are assigned work, start early and finish early. If you know what needs to be done, do it if your work environment allows it, or ask permission if you need to – but get it done. Supervisors and management LOVE self starters. 4. Perform quality work – This goes hand in hand with the quality above. Develop a reputation for getting things done right – the first time. If you can become one of those people who can be counted on, not only to get it right, but to deliver an excellent product – you will be successful. 5. Develop good listening skills – Engage your mouth when necessary, but keep your ears open at all times. Learn to be a good and thoughtful listener. It will aid you in your work, you will develop a reputation as being easy to talk to, and most importantly, you will learn what is going on around you. 6. Don’t be a gossip – Develop a reputation for being a confidant. Do intelligence gathering, but don’t be a grouser. 7. Know how to behave – Actions and behaviors that are appropriate in small team meetings among your co-workers are not necessarily appropriate when addressing a team of Vice Presidents. Know the difference and act appropriately. 8. Deliver on your promises – Become known for keeping your word and delivering on your promises – and if you can’t, let people know why. 9. Be honest in your dealings – If people “can’t trust you as far as they can throw you” or think you always have a hidden agenda, you will go nowhere fast. Conversely, being known as an honest broker and a truth teller will gain you much credibility when working with others. 10. Be a willing collaborator – This doesn’t mean you have to give in on everything, but be willing to be a partner on efforts led by others. If people find you easy to work with, you are more likely to have more opportunities presented to you. 11. Be knowledgeable –Don't talk about things you don't know about. Don’t be afraid to say, “I don’t know but I will get back to you.” Also, stay well read and– while you might not be an expert on every topic–make sure you can talk intelligently about most topics in your area. 12. Be a quick study – One of the hallmarks of good leaders is the ability to quickly gather information, interpret it, and use it in decision making. 13. Promptness pays – Lateness is interpreted as slothfulness or the inability to manage your time properly. If at all possible – Be Early! Just-in time-is good for inventory management, not your time management. 14. Image counts – First impressions are hard to overcome and people do judge you on your appearance. While you don’t have to dress like you are straight out of a fashion magazine, your attire speaks for you, whether you like it or not. 15. Get out of your cube –Meet people within your department and outside it. You have to gain exposure and also make yourself comfortable mingling with people outside your area. 16. Learn the business – Whatever the core business is for your organization, learn it. Also learn what it takes to support that core business. It also never hurts to know statistics and facts about your organization. This will help you empathize with your clients. 17. Empathy – Being able to see things from another person’s perspective, regardless of whether you agree or disagree, will help you immensely, no matter what you are doing. 18. Do Not be a drama queen – Learn to be able to quickly determine what a genuine crisis is and what is not and act like you have things under control. You can scream, cry, pout or whatever later in private. Emotional outbursts are not welcome in the workplace. 19. Be a critical thinker - You have to be able to see the forest AND the trees. Learn to look at all the information and perform a quick analysis to determine what are causes, what are effects, and what variables come into play regarding any problem. 20. Be yourself – People can sense someone who is not genuine. Keep in mind that humbleness is a good quality, as no one likes a pompous person, but don’t be afraid to toot your own horn occasionally when you deserve it. 21. Take the next step – When it is obvious what the next step might be in a project or product – take it! Unless you are being micromanaged, don’t wait to be told to do the next logical step in something if it is within your purview to do so. This can get you in trouble if you have really heavy-handed management, but in most cases, people will be glad you did. 22. Treat people kindly – Treat people at all levels of the organization with courtesy and respect. You never know when and where you will encounter them again. Abide by the golden rule – treat people the way you wish to be treated. 23. Remember it’s a small world – Word travels quickly, people have long memories, good deeds will be rewarded, and slights are never forgotten. So do not burn any bridges and do not try to make any enemies – you never know where people will show up again in your life. 24. Be sincere – People do appreciate sincerity. If you make a sincere effort to accomplish something – it will be noted. 25. Don’t be afraid to ask why – Not in a whiny way – but in the form of – “I’m trying to better understand X, can you help me gain a better understanding by explaining why we do X?” You would be surprised how much you can learn with that simple phrase.
 


November 01 2006
Automated Dial-Out Script - Python
The following program, uses a list of integers to keep track of which modems are locked, glob.glob to do filename expansion, and os.system to run a kermit command when a free modem has been found #!/usr/bin/env python # find a free modem to dial out on import glob, os, string LOCKS = "/var/spool/locks/" locked = [0] * 10 for lockname in glob.glob(LOCKS + "LCK*modem*"): # find locked modems print "Found lock:", lockname locked [string.atoi(lockname[-1])] = 1 # 0..9 at end of name print 'free:' for i in range (10): # report, dial-out if not locked[i]: print i, print for i in range(10): if not locked [i]: if raw_input ("Try %d? " % i) == 'y': os.system ("kermit -m hayes -l /dev/modem%d -b 19200 -s" % i) if raw_input ("More? ") != 'Y': break The program above works only if there are 10 or fewer modems; if there are more, you'd need to use larger lists and loops, and parse the lock filename, not just look at its last character.
 


November 01 2006
Lipstick got reddit fever
Lipstick.com, a beta site that aggregates links to celebrity gossip news stories. Probably thats the reason its got pink color and looks pretty much like barbie. Lipstick.com is using reddit technology for news aggregation. It has got the same looks, menu, register, submit, you name it if its there in reddit its there in Lipstick. I have not seen much hits and votes for Lipstick, probably its still in beta, probably the word has not gone out. It would certainly be a success for paparazzi, celebrity enthusiastic and the likes.
 


November 01 2006
Reddit 1-2-3.... gone
Reddit, a YCombinator company has been sold for an undisclosed sum to CondéNast, owner of wierd. Its amazing they were working with only 4 employees. Currently Reddit will be left as it is and later moved incorporated to CondéNast