terça-feira, 16 de dezembro de 2008



mod_cluster is an httpd-based load balancer. Like mod_jk and mod_proxy, mod_cluster uses a communication channel to forward requests from httpd to one of a set of application server nodes. Unlike mod_jk and mod_proxy, mod_cluster leverages an additional connection between the application server nodes and httpd. The application server nodes use this connection to transmit server-side load balance factors and lifecycle events back to httpd via a custom set of HTTP methods, affectionately called the Mod-Cluster Management Protocol (MCMP). This additional feedback channel allows mod_cluster to offer a level of intelligence and granularity not found in other load balancing solutions.

Within httpd, mod_cluster is implemented as a set of modules for httpd with mod_proxy enabled. Much of the logic comes from mod_proxy, e.g. mod_proxy_ajp provides all the AJP logic needed by mod_cluster.

see more

quinta-feira, 4 de dezembro de 2008

In Depth: 50 amazing Ubuntu time-saving tips

The end of October saw the much anticipated release of Ubuntu 8.10 - affectionately called the Intrepid Ibex.

It's a release that sees Ubuntu going from strength to strength.

And with its popularity reaching stratospheric proportions, we thought that now was the perfect time to pool together our favourite tips into one place.

If you've never tried Ubuntu, there's never been a better time to dive in. If you're already a convert, read on to discover how to get the best from your installation.

System performance

1. Shorten the boot menu timeout
If you're fed up of waiting for the boot menu to timeout before your favourite operating system launches, open '/boot/grub/menu.lst' with a text editor and look for the line starting with 'timeout'. Just lower the number to its the right. This is the number of seconds the menu system will wait before booting the default operating system (0 or 1 is not recommended).

2. Monitor boot performance
One of the best utilities you can install for checking your system's performance is called 'bootchart'. After installation and a reboot, 'bootchart' will create a complex graph of everything that's running and taking up resources as your system boots, and place an image of the graph in the /var/log/bootgraph folder.

3. Improve boot speed
When the boot menu appears (you might have to press escape) select the default Ubuntu boot option and press 'e'. Cursor down to the line starting with 'kernel' and press 'e' again. You're now editing the boot parameters, and you need to press space and add the word 'profile'. Press return followed by 'b' to boot. Disk access during your boot sequence will now be profiled, which means that subsequent booting should be faster.

4. Trim unwanted services
The default Ubuntu installation takes an over cautious approach to background services. Bluetooth tools may be be running, for example, even if you don't have the hardware. Disable the services you don't need by opening the Services window from the System>Administration menu. Be careful not to disable services you rely on.

5. Monitor CPU usage
You might think that CPU monitors are purely for geeks trying to steal a few extra cycles from their overclocked processors. But this isn't true. A discreet CPU monitor is the best way detecting a wayward process that's slowing down the rest of the system. Right click on the desktop panel, and select 'System Monitor' for our favourite. There's a similar applet for KDE.

6. Manage your processes
If you do detect a process on your system that's stealing more CPU cycles than it really should, then you need to end that process to get those cycles back. Save all your work, and use the Ubuntu process manager. This is part of the System Monitor tool, and this can be opened from the System>Administration menu.

7. Be nice to one another
If you use the System Monitor to manage your running tasks, you might have noticed the 'nice' column. 'nice' is basically a task's priority, and ranges between -20 to 19. If you have a CPU heavy task running, such as a 3D calculation for example, increasing the nice will lower its priority, and make your system feel more responsive.

The default Gnome desktop

8. Enable Gnome Auto login
A lot of us are the sole users of our computers, and it makes little sense navigating through a login screen before getting to our desktops. You can enable auto-login for a default account on your Ubuntu machine by selecting 'Login Window' from the System> Administration window. Switch to the 'Security' page, enable 'Automatic Login' and select the user.

9. Prune your menus
The more applications you install, the more cumbersome the launch menu becomes. But you can enable the applications you're most likely to use right clicking on Ubuntu icon that hides the menu, and selecting 'Edit Menus'. The application that appears will let you enable or disable menus in the hierarchy.

10. Remove the menu popup delay
HCI gurus insist that there should be a delay between when you click on a menu and when it appears, but if it's speed you're after, you can remove the delay. Open a terminal, and type 'nano ~/.gtkrc-2.0', then add a single line 'gtk-menu-popup-delay = 0'. Save this by pressing escape and typing 'Y', and after a restart you should find your menus are ultra quick.

11. Add More Workspaces
Workspaces are one of the best things about Linux. They're a great way of organising your applications onto different virtual screens. By default, Ubuntu sets up only two, but you can adjust this number by right clicking on the workspace switcher in the bottom right corner of the display and opening the Preferences window.

12. Use Workspaces more effectively
Use 'Ctrl alt' and either cursor left or right to switch between adjacent workspaces, and if you hold down the shift key, the active window will move to the new desktop too. For better control, right click on any windows top border to open a context menu, and from here you can choose to move the window to another workspace.

13. Don't start everything
As with system services, the average Ubuntu installation runs lots of different programs at startup. You can remove those you don't need by launching the Sessions window from the Preferences menu. If you don't use the desktop search, for instance, disable 'Tracker'. Other likely candidates for removal include Bluetooth, the Evolution Alarm Notifier and the Print Queue Applet.

14. Remember the running session
Another neat feature of the setting manager is that you can configure your desktop to remember the applications that were running when you shutdown your machine. This is a great way of quickly launching into your working environment. Just switch to the Session Options page and enable the 'Automatically Remember' option.

15. Fine tune the Gnome desktop
Application shortcuts are hidden behind the Gnome equivalent of the Windows registry editor. This can be launched from the command-line by typing 'gconf-editor'. But be careful, settings changed here could mess up your desktop. If you do, then the desktop can be restored to its default state by deleting the '.gconf' and '.gconfd' folders from your home directory.

16. Launching applications with a key combination
One of the settings hidden in Gconf is the ability to launch applications with a key combination. Navigate to 'apps>metacity>key_binding_commands', double click on one of the 'command_' entries and enter the launch command for the application you want to run. To set the key, double click on the same entry in 'apps>metacity> global_keybindings' and press a key. Holding 'Ctrl Shift alt' and that key will now launch the application.

17. Use pervasive searches
Ubuntu comes with an excellent utilities for searching through the contents of files and emails, but it's not enabled by default. Open the Search and Indexing window from the Preferences menu, and enable both indexing and watching. After the index has been created, you can search through your files using the 'Tracker Search Tool' in the 'Applications>Accessories' menu.

18. Switch To A Faster Desktop
Ubuntu uses the Gnome desktop by default. It's a good choice because Gnome is powerful, capable and popular. But it's not streamlined or particularly efficient. A faster alternative is XFCE, the source of Xubuntu, and this can be installed through the Synaptic package manager by searching for the 'xubuntu-desktop' meta-package.

The KDE desktop

19. Switch to an KDE
If neither Gnome or XFCE are helping you be more productive, then try KDE. It's the most configurable of the Linux desktops, and often takes a different slant on browsing and file management. Version 4 has vastly improved the environment, and it can be installed by searching for the 'kubuntu-desktop' in Synaptic.

20. KDE auto-login
If you prefer Kubuntu or the KDE desktop, then you'll need to use a different configuration panel to enable auto-login. Open KDE's System Settings application, and switch to the Advanced page and open the Login Manager. Enter your root password and switch to the convenience page. From here you can choose to enable a user for auto login.

21. Pre-load Konqueror
If you're always launching KDE's file and web browser, you can pre-load several instances of it to speed up launch time. Open the Settings>Configure Konqueror window, and switch to the Performance page. Increase the number of instances from 1 to something like 4 or 5. Each instance takes extra system memory, but each session of Konqueror will now load almost instantly.

22. Use Konqueror shortcuts
Konqueror is a great file and web browser with plenty of shortcuts for the power user. Our favourite is the ability to use shortcuts in the location field to perform online searches. Typing 'wp:linux' will search Wikipedia for Linux, while 'gg:linux' and ggi:linux' will search Google and Google Images.


23. Launch OpenOffice.org faster
The default OpenOffice.org configuration errs on the side of caution. There are 100 levels of undo, for example, and reducing this number will reduce the amount of memory it uses. This setting can be found from the Options window by switching to the Memory page. Try reducing the undo steps to 30.

24. Use the quick launch toolbar
In both Gnome and KDE, you can drag applications from the launch menu onto the desktop and onto the toolbar. Clicking on these icons is the quickest way of launching your most used applications, short of holding down a certain key combination.

25. Replace slow applications
One of the best things about open source is that there's always an alternative, and switching to one can vastly improve your system's performance. Try Abiword instead of OpenOffice.org's Writer, Thunar instead of Nautilus and Opera instead of Firefox. All are broadly compatible with their alternatives, and perform faster.

26. Rapid application launch
If you know the name of the application or tool you want to launch, you can quickly start it by pressing Alt and F2. This displays a single command-line prompt in a window, and into this you type your application name. Type 'firefox' and its icon will appear. Pressing enter will launch it.

27. Take a screenshot
Pressing the Print key will take a screenshot and bring up the save file window. Being able to take a screenshot at any moment is incredibly useful, and is great for saving online order details, for example, or just your high score in Crack Attack. Pressing Alt and Print will take a screenshot of the currently active window.

28. Quickly restart the desktop
Occasionally, you may find that your desktop hangs and you can no longer use the keyboard or mouse. Fortunately, the desktop process is entirely independent of the rest of the operating system, and you can reset the desktop by holding down the Ctrl Alt and backspace keys. But you will still lose any unsaved data, so be careful.

29. Jump to a console
Another option if your desktop has crashed is jumping to a command-line console. Pressing Ctrl and alt, followed by F1-F6 will switch the display to one of six different consoles. From here, you can login and try to kill the process causing trouble, before switching back to your desktop by pressing Ctrl Alt and F7.

30. Create a separate Home partition
When you next perform a fresh installation of Ubuntu, choose the manual partition option and create three separate partitions. One needs to be for '/', and should be around 10-20GB, . Another should be for the swap space, and be around the same size as your installed memory. And the final partition is '/home', and will contain all your personal files. When you next install Ubuntu, choose manual again and your Home partition won't be reformatted, keeping all your personal files and configuration options in tact.

31. Tweak your Nvidia settings
After installing the proprietary driver, Nvidia graphics hardware provides exceptional 3D and 2D acceleration for the Linux desktop. You can fine-tune your Nvidia hardware by installing an application called 'nvidia-settings', from which you can edit your monitor settings, enable twin displays and add a drop shadow to the cursor.

32. Track down large unused files
Large and scattered files can start to slow your desktop down, as well as any applications that rely on reading the contents of a directory. The best tool we've found for consolidating and deleting unused files is called Filelight. It uses a pie chart to show where the largest files are located, and you can easily delete directories of junk from the right click menu.

33. Enable vertical sync in Compiz
Compiz, the 3D whizzy desktop effects application, can be either a resource hog or even an acceleration tool. It depends on the power of your graphics hardware. But we've nearly always had better more responsive results on the desktop by enabling the vertical sync option in the general option page of the Compiz settings manager.

34. Don't Compiz
On the other hand, the wonderful effects that Compiz produces can't really be described as functional, although they do provide some improved usability for some. You can free up plenty of resources by disabling the desktop effects from the Visual Effects page of the Preferences>Appearance window.

35. Get packages off a CD or DVD
Even in these times of pervasive internet, you sometimes need to be able to install a package without having an internet connection. Fortunately, the Synaptic package manager can read the contents of an Ubuntu installation CD, and add those packages to the database for installation from the drive. Open the Software Sources window from the Administration menu, switch to the 'Third Party' page and click on the 'Add CD-ROM' button.

36. Boost load speed with Preload
Preload is a tool you can install through the Synaptic package manager. It will run silently in the background, from where it will try to guess which libraries you're likely to use before you use them. It will then load these into memory so that your applications load quicker. The effects seem to be minimal with recent releases of Ubuntu, but it's worth a try.

37. Use a virtual desktop
If you enjoy trying different distributions, but have always been put off by the installation, try Virtual Box from the official Ubuntu repositories. It's easy to use and lets you install a virtual version of almost any Linux installation (and even Windows) right on your desktop, and running at close to native speeds.

38. Boot into text mode
Sometimes, a graphical environment is unnecessary, especially if you use your machine as a server. Which is exactly why there's a version of Ubuntu called the Server edition. By default, Server has no graphical desktop. But in all other ways, it's the same Ubuntu. This makes it perfect as a web or media streaming server.

39. Suspend your system
Why wait for your system to boot when you can resume your session from hibernation. This is quicker than booting, and you can continue where you left off. But it's also dependent on your hardware behaving itself. Just give it a go to see if your hardware supports the feature. Click on the logout button, and if hibernate appears as an option, it should work.

40. Customise your kernel
If you're feeling really brave (and we'd never recommend this for anyone with too little time on their hands), you could build your own kernel. It's not as hard as it sounds and it will enable you to add only the features and hardware you're likely to use. Excellent step by step instructions can be found here: https://help.ubuntu.com/community/Kernel/Compile

The command-line

41. Try it, it's really not that bad
The command-line really is your friend. After opening Terminal from the Applications>Accessories menu (or Konsole in KDE), you can accomplish many common tasks much more effectively than from any desktop GUI. To copy folder, for example, type 'cp -rf source destination', rename a file with 'mv' and edit a text file using a command called 'nano'.

42. Easy command shortcuts
You can press the tab key while using the command-line to automatically complete command names as well as system paths. You can also cursor up through your command history, and use 'Ctrl + r' to search for a command starting with the characters you begin to type.

43. Replace heavy GUI applications with command-line equivalents
There are command-line versions of most desktop applications. You could install and use 'pine' for your email and news, for instance. Or try 'lynx' for web browsing and 'wget' or 'ncftp' for downloading files. 'mc', short for Midnight Commander, is a feature-full file manager, and all of these tools will run on hardly any memory with hardly any CPU requirements.

44. Create an ISO image from a CD or a DVD
You can create an ISO image from optical media, and most attached devices, by using a single command on the terminal. Type 'dd if=/dev/cdrom of=disk.iso bs=1024' to make a raw copy of the data and drop it into the disk.iso file. You may need to unmount the drive first, by typing 'sudo umount /dev/cdrom'.

45. Read an ISO disc image without burning it
If you've downloaded an ISO disc image, and you want to access the files on it without wasting an optical disk, you can create a virtual drive from the image with a single command. Open the terminal from the Accessories menu. Type 'sudo mkdir /mnt/image', followed by 'sudo mount -o loop disk.iso /mnt/image'. You can now browse the disc by pointing a file browser at the '/mnt/image' folder.

46. Use the 'screen' command
After you've got used to the command-line, one of the best commands to learn is called 'screen'. It's the command equivalent to virtual desktops, and it lets you run several sessions at once, as well as suspend and resume a session. Type 'screen' to start, then press 'Ctrl a' followed by 'c' to create a new session. 'Ctrl a' and 'n' or 'p' will switch through the active sessions. 'Ctrl a' and 'd' will detach from the session, while typing 'screen -r' will resume one.

47. Access your Ubuntu machine from anywhere
The best thing about the command-line is that you can use it to access your machine securely from anywhere on the internet. The key to this is something called 'SSH' - the secure shell. Install 'openssh-server' through Synaptic and use a tool called 'putty' on a Windows machine, or 'ssh' on Linux, to access the command-line through your user accounts on your Ubuntu box.

48. Transfer files between computers files quickly and securely
With the open SSH server installed and running, you can quickly and securely transfer files to and from the remote computer using the 'sftp' command. It works just like FTP, and accepts both 'put' and 'get' for file tranfers. If you prefer a GUI, we recommend using Filezilla on Windows, or 'sftp://' as a protocol in KDE.

49. Avoid typing 'sudo'
You might have noticed that for almost every important configuration command you type, you need to precede it with 'sudo' and your password. This can be a real pain if you're typing one sudo command after the other. Avoid this hassle by typing 'sudo bash', this transparently replaces the current shell with a new one, complete with administrator privileges.

50. Create a root account
If you find yourself spending more and more time requiring system administration privileges, you may as well enable the root account. Just type 'sudo passwd root', and enter your password followed by a new one for the root account. You can now type 'su root' to login as root, but you should only use this mode for essential system maintenance.

Now read 25 killer Linux apps and 20 Linux apps you can't live without

domingo, 30 de novembro de 2008

JavaFX - impressões de um fim de semana

Nessa preview (JavaFX Preview SDK), bug pra caramba! impraticável! vamos esperar a release em 04/12! só funfa os exemplos deles, e alguns botões, sliders, bem simples; me pareceu, e pelo que li nos foruns, que a API não foi toda liberada e a integração com netbeans, tá meio loucona... ele se perde pra importar um script, ou scene, etc... tem que colocar na mão! doc da API ainda é draft.

O bom! simples, simples, simples! os scripts (a linguagem FX) é uma mistura de javascript com java e pedaços da XLib (X11) ; a idéia são conjuntos, grupos, frames,
scenes, gradients, widgets, eventos de keys e mouse, etc. A integração com java me pareceu tranquila, pelos menos nos Sysout.out da vida... ops, é OO! a idéia de script, nos tira os objetos da cabeça... hehe!

Muito rápida, muito rápida! o weather ficou show (exemplo deles), lendo do google weather pra infinidade de png que tem, pra os efeitos das nuvens, raios, chuvas, trovoadas, lua, sol, etc, é bem rápida! nos exemplos, muita matemática, circle, vector, area, lightning... o posicionamento dos ponteiros, é uma composição seno/coseno mesmo! isso me lembrou flash! shadows, infinity, texture,... quem conhece o Photoshop, deve lembrar aquela parada de ficar brincando com sombras, angles, opacidade, camadas... é por aih,... toin! mas, tá bem voltado pra desenvolvedor, coisa que não acho no flash... mas, dêem uma olhadinha num estilo de script... (vejam no ImageView um pedaço de Java... oh meu Deus!)
Group {
transform: bind Transform.rotate(angle, 50, 50)
translateX: bind x
translateY: bind y
content: [
Circle {
opacity: bind shape.value
centerX: 50 centerY: 50 radius: 50
stroke: Color.YELLOW
fill: RadialGradient {
centerX: 50 centerY: 50 radius: 50
focusX: 70 focusY: 30
proportional: false
stops: [
Stop {offset: 0 color: Color.YELLOW},
Stop {offset: 1 color: Color.WHITE}
Text {
transform: bind Transform.rotate(33, 10, 100)
opacity: bind text.value
content: "Duke"
ImageView {
transform: bind Transform.translate(31, 27)
opacity: bind image.value
image: Image {url: this.getClass().getResource("duke.png").toString()}
Tem o Project Nile, que são plugins para exportar do Photoshop ou Illustrator para o FX; nada mais que vetorizar as imagens no padrão SVG; só usei png mesmo, pois o bicho capotava quando tratava os vetores... ahh, ele deixou eu criar um projeto com o mesmo nome no workspace (ouch!!) e quando fui apagar, ambos foram pro espaço! depois quando tentei reabrir, o bicho ficou doidão!

O velho e bom Quicktime, o Fenix, volta a aparecer como a principal ferramenta para exibir vídeos no FX, e, também na API disponibilizada, só tem ele; deve aparecer logo coisas pra Windows Media Player, Winamp,... e o flash player?

Detalhe, para os desavisados... não rodei nada dentro do browser, fiz tudo no IDE; entretanto, o grande atrativo dessa tecnologia, pra mim, é você "arrastar" (criar um link!) de dentro do browser e colocar no desktop, e rodar como uma aplicação qualquer, e, depois pode-se criar um link no desktop, tipo JNLP (Java web start launcher)... pronto! do browser pro desktop num piscar de olhos... e o link fica lá,... clicou, aplicação rodou... ou roda localmente, ou de um server; não se preocupem, tem como fazer cache também! Nesse ponto ficou uma dúvida... ele usa a cache do browser, usa o engine do browser default? no meu caso, ele usou o xlrunner do firefox? bom, o Dudu elucidou o dilema; o próprio webstart tem todo esse mecanismo de configuração, praticamente o mesmo mecanismo dos browsers, como arquivos temporários, tamanho da cache, JVM disponíveis, certificados, etc...

Bom, pra ficar bonitinho, tem que ter um trabalho gráfico, mas se quiser uma interface com botões e sliders, fica "fofo!" (nada de boiolices, vlw?! hehe)

Li bastante coisa do projeto,... agora, vou esperar dia 04/12, baixar e começar a brincar! como eu iria pra flash e tava achando dificil demais, vou agora gastar tempo com o FX!

Recomendo a galera dar uma olhada e compartilhar a impressão... ainda apanho um pouco com o netbeans... ahh, soh roda no 6.1 segundo a Sun; espero que a release rode no 6.5, mas a Sun não garante... fiz o teste, e rodou... esquisito?! achei naum!

Por enquanto o SDK JavaFX só tem pra Windows e Mac... pobre pinguim! mas encontrei dicas e "marretas" pra rodar no Linux a partir do pacote Mac (diga-se kernel FreeBSD), mas não tentei.

nesse link, sabe-se quase tudo sobre o projeto: http://www.javafx.com/


quarta-feira, 26 de novembro de 2008

What is the Apache C++ Standard Library?

The Apache C++ Standard Library project (code name stdcxx, pronounced "standard C++ library", not S-T-D-C-X-X) is a collection of algorithms, containers, iterators, and other fundamental components of every piece of software, implemented as C++ classes, templates, and functions essential for writing C++ programs.

The goal of the Apache C++ Standard Library is to provide a free implementation of the ISO/IEC 14882 international standard for C++ that enables source code portability and consistent behavior of programs across all major hardware implementations, operating systems, and compilers, open source and commercial alike. An additional goal is to achieve maximum implementation efficiency on each platform by taking advantage of platform-specific high-performance facilities and features which are often unique to the type of hardware, the operating system or the compiler.

As the starting point for future efforts, in summer 2005 Rogue Wave Software has contributed its commercial implementation of the C++ Standard Library to the Apache stdcxx project, a proven code base that has been shipping for over a decade and is among the most widely used cross-platform implementations of the library.

The key features of the stdcxx project at the time of submission include:

  • Full conformance to the C++ standard
  • Complete implementation of the localization library independent of the underlying operating system, including a large set of locale definition files, character set description files, and utility programs to process these files and generate locale databases
  • User control over strict or permissive conformance checking
  • Thread-safe implementation of strings, iostreams, and locales
  • Reference counted basic_string implementation using atomic locking with the ability to switch to a non-reference counted implementation
  • Excellent runtime performance
  • Optimized for fast compiles and extremely small executable file sizes
  • Portable to and fully tested on a large set of operating systems, including AIX, HP-UX, Linux, Solaris, Windows, etc.
  • Portable to most leading commercial as well as open source compilers
  • Debugging facilities such as safe iterators, precondition and postcondition checking, and the ability to generate stack traces
  • Fully documented configuration and build infrastructure
  • Thorough, well-maintained documentation
  • Ten years of deployment in the world's most critical enterprise systems

Histórico da Linguagem C

A primeira versão de C foi criada por Dennis Ritchie em 1972 nos laboratórios Bell para ser incluído como um dos softwares a serem distribuídos juntamente com o sistema operacional Unix do computador PDP-11, na equipe certificada por Ken Thompson.

Ao ponto de vista técnico, o surgimento do C iniciou com a linguagem ALGOL 60, definida em 1960. ALGOL era uma linguagem de alto nível, que permitia ao programador trabalhar "longe da máquina", sem se preocupar com os aspectos de como cada comando ou dado era armazenado ou processado. Foi criado para substituir o FORTRAN. ALGOL não teve sucesso, talvez por tentar ser de muito alto nível em uma época em que a maioria dos sistemas operacionais exigiam do usuário um grande conhecimento de hardware.

Em 1967 surgiu CPL (Combined Programming Language) nas universidades de Londres e Cambridge com o objetivo, segundo a equipe do projeto, de "trazer ALGOL à terra", ou "manter contato com a realidade de um computador real". Da mesma forma de ALGOL, CPL não foi bem aceita, em especial pelos projetistas de sistemas operacionais que a consideravam difícil de implementar.

Ainda em 1967, em Cambridge, Martin Richards criou o BCPL (Basic CPL), uma simplificação do CPL, tentando manter apenas as "boas coisas do CPL".

Em 1970, Ken Thompson, chefe da equipe que projetou o UNIX para o PDP11 do Bell Labs, implementou um compilador para uma versão mais reduzida do CPL. Batizou a linguagem de B.

Tanto BCPL quanto B mostravam-se muito limitadas, prestando-se apenas para certas classes de problemas. Isto se fez sentir especialmente na primeira versão do PDP11, lançado no mercado em 1971. Um dos fatores que levou à isto foi a intenção do grupo responsável pelo UNIX de reescrevê-lo todo em uma linguagem de alto nível, e para isto B era considerado lenta.

Estes problemas levaram a que o projetista Dennis Ritchie, do Bell Labs, fosse encarregado de projetar uma nova linguagem, sucessora do B, que viria então, a ser chamada de C.

A linguagem C buscou manter o "contato com o computador real" e ainda sim dar ao programador novas condições para o desenvolvimento de programas em áreas diversas, como comercial, científica e de engenharia.

Por muitos anos (aproximadamente 10) a sintaxe (formato) tida como padrão da linguagem C foi aquela fornecida com o UNIX versão 5.0 do Bell Labs. A principal documentação deste padrão encontra-se na publicação "The C Programming Language", de Brian Kernighan e Dennis Ritchie (K&R), tida como a "bíblia da linguagem C".

O mais interessante desta versão de C era que os programas-fonte criados para rodar em um tipo de computador podiam ser transportados e recompilados em outros sem grandes problemas. A esta característica dá-se o nome de portabilidade. Com ela, uma empresa que desenvolve um programa pode fazê-lo rodar em diferentes computadores sem ter um elevado custo a cada vez que isto for feito.

Em 1985, ANSI (American National Standards Institute) estabeleceu um padrão oficial de C o chamado "C ANSI".