As a professional translator we have to know many things about a wide variety of subjects. This web-site provides information about Translation, Subtitling, Localization, Database Development, Software Programming, and Web Design at DanLinguistic and background and reference materials for freelance translators and developers alike.

DanLinguistic is a company located in the Northern Part of Denmark. The daily running of the company is taken care of by Willy Nørgaard Olesen, BSc. & MA. I have been working as a freelance translator with my own company since 1989.

I got a Swedish B.Sc. Degree in International Relations from University of Gothenburg and a British MA Degree in International Relations from the University of Kent at Canterbury and I am finishing a second BA Degree in English Language, Literature and Translation from University of Aalborg, Denmark and University of Gothenburg, Sweden.

Currently, I am studying part-time for another BSc in Computer Science and two Minors in Ancient History and Culture, and German Language and Culture. Since my first graduation in 1989, I have been working as a translator from English, Swedish, Norwegian and German into Danish, for different companies, institutions and organizations worldwide.

TranslationProcessV2History

In the beginning of 1990’s, I was working as an academic language consultant for Nova International Aps in Frederikshavn and InterMac A/S in Copenhagen, Denmark where I was translating manuals, and data sheets from English into Danish and localizing Mac software from International English for the Danish, Norwegian and Swedish market. Among other things, we developed the first Danish spelling checker for the Macintosh versions of Write Now and QuarkXPress.

Since graduation, I have had a full-time job as both a freelance translator and an in-house translator in London, Copenhagen, Gothenburg, and Frederikshavn. I have done many different translations, localization and interpretation projects for local, national and international customers.

I specialize in technical texts, including consumer electronics, electronics, computer technology and software, medical electronics, electricity, websites, and software localization.

Since the start in 1989, I have translated several millions of word for many different companies such as: Wrox Tools, Philips, Siemens, Samsung, HP, ASUSTEK, Apple Computers, Microsoft, IBM, General Motors, Massey Ferguson, John Deere, Moxy Trucks, Volvo AB, Saab AB, Schneider Electrics, Sony-Ericson, Husqvarna, AAB Fläkt, ABB Robotics, ABB Electrics, Panasonic, Brother, Canon, Dafolo Marketing, The Top of Denmark, and many others.

Other areas of specialization are Anthropology, Macro Economy, Micro Economy, Political Science, International Relations, Peace Studies, Development Economy, Sociology, Linguistics, Cultural Studies, Ancient History and Culture, and Psychology for IGO’s and NGO’s.

During the recent years has, what originally was language and culture, developed into a synthesis of Language, Culture and Computer Science, with the advancement of the Internet, The World Wide Web, Database Management Systems (Relational Databases, SQL & NoSQL Systems), Data Warehousing, The Big Data Framework, The Internet of Things (IOT), E-Books, Rich Multi-Media Content, Globalization & Localization of Software, Web Programming, and Computer Assisted Translation Tools (CAT) to such an extent that it is meaningful to talk about Language Engineering.

Language Ingenuity at DanLinguistic

Services

DanLinguistic offers the following services:

  • Medical & Pharmaceutical Translations
  • Legal Translation Service
  • Gaming & Gambling Translation Services
  • Engineering Translations
  • Business and Financial Translation Services
  • Art and Literary Translation
  • Software Translation Services
  • Marketing Translations
  • Social Science Translations
  • Science Translation Services
  • Interpretation Service
  • Localization Service
  • Subtitling Services

Fast, Professional Translation Services

Windows 10 Pro, Mac OSX Sierra, Redhat Enterprise Linux Workstation

2013iMac_v3

Managing translation can be complex – at DanLinguistic we make it simple, fun and inexpensive. We work 8 hours a day, including weekends, so there’s always a friendly Linguist on hand to answer your questions and keep your project on track. Our cutting edge translation makes it easy to integrate translation into your document management workflows. If you’re looking for a reliable translation company using the latest technological advances, then call us on + 45 5039 4664. Every project has different requirements, so we offer different service levels to match your needs. Benefit from lower costs, faster turnaround times and more consistent terminology by integrating translation technologies into your text management workflow.

The Best Translators

services_alv_en

I translate from English, Norwegian, Swedish, and German into Danish. In addition I have a close cooperation with a couple of freelance translators who translate from Danish into English, Norwegian, Swedish and German.

Benefits

  • Comprehensive review of source text
  • Assigned to professional, native-speaking translator
  • Terminology research
  • Reviewed by second professional translator
  • Post-translation revision and editing as required
  • DanLinguistic proprietary Coach technology ensures consistency

Turnaround times

Our standard delivery is around 2,500 translated words per working day, although we can often scale this up if you have a particularly tight deadline. At DanLinguistic, we’re committed to producing fluent, accurate translations that meet all your requirements.

I am an academic member of Microsoft Imagine, Microsoft Developer Network and Apple Developers.

I use the following programs for translation on: Windows 10 Pro, Mac OSX, Oracle Linux 7,4, and Oracle Solaris 11.3, AWS Cloud, Microsoft Azure for Database Development, Web Development, CMS Development, Computer Programing and Big Data & Hadoop development.

  • Microsoft  Office Professional 2016
  • Microsoft Office 2016 Online
  • Microsoft Office for Mac 2016 (Mac OSX)
  • Ability Office Professional
  • Softmaker Office 2018
  • WPS Office Business
  • Thinkfree Office NEO Enterprise Edition
  • Google Docs
  • Nisus Writer Pro (Mac OSX)
  • Adobe Creative Cloud 2018 (Mac OSX & Windows 10 Pro)
  • QuarkXpress 2018 (Mac OSX)
  • Trados Studio 2017
  • MemoQ Pro 8.2
  • WordFast Professional 5 (Mac OSX & Windows)
  • Fluency Now (Mac OSX, Windows & Linux)
  • Swordfish III (Mac OSX, Windows & Linux)
  • DejaVue X4
  • Alchemy Catalyst 12.2 Translator/PRO
  • Across/crossWeb Cloud (Mac OSX, Windows & Linux)
  • Memsource Cloud (Mac OSX, Windows & Linux)
  • XTM Cloud (Mac OSX, Windows & Linux)
  • SmartLing Cloud (Mac OSX, Windows & Linux)
  • SmartCAT Cloud (Mac OSX, Windows & Linux)
  • WordFast Anywhere Cloud (Mac OSX, Windows & Linux)
  • Pootle (Linux)
  • Weblate (Linux)

Localizatin Ingenuity at DanLinguistic

Overview of Globalization and Localization

In the past, the term localization often referred to a process that began after an application developer compiled the source files in the original language. Another team then began the process of reworking the source files for use in another language. The original language, for example, might be English, and the second language might be German. That approach, however, is prohibitively expensive and results in inconsistencies among versions. It has even caused some customers to purchase the original-language version instead of waiting months for the localized version. A more cost effective and functional model divides the process of developing world-ready applications into three distinct parts, globalization, localizability, and localization.

The primary advantages of designing and implementing your application to be sensitive and appropriate to regional conventions, data in a variety of world languages, and alternate format are:

  • You can launch your application onto the market more rapidly. No additional development is necessary to localize an application once the initial version is complete.
  • You use resources more efficiently. Implementing world-readiness as part of the original development process requires less development and testing resources than if you add the support after the initial development work starts. Furthermore, if you add world-readiness to your finished application, you might make it less stable, compounding problems that you could have resolved earlier.
  • Your application is easier to maintain. If you build the localized version of your application from the same set of sources as the original version, only isolated modules need localization. Consequently, it is easier and less expensive to maintain code while including world-readiness. The key to this aspect of designing software rests in using resource files for the localized versions of the application.

Globalization

Globalization is the process of designing and developing a software product that functions in multiple cultures/locales. This process involves:

  • Identifying the culture/locale that must be supported
  • Designing features which support those cultures/locales
  • Writing code that functions equally well in any of the supported cultures/locales

In other words, globalization adds support for input, display, and output of a defined set of language scripts that relate to specific geographic areas. The most efficient way to globalize these functions is to use the concept of cultures/locales. A culture/locale is a set of rules and a set of data that are specific to a given language and geographic area. These rules and data include information on:

  • Character classification
  • Date and time formatting
  • Numeric, currency, weight, and measure conventions
  • Sorting rules

Localizability

Localizability is an intermediate process for verifying that a globalized application is ready for localization. In an ideal situation, this is only a quality assurance phase. If you designed and developed your application with an eye towards localization, this phase will primarily consist of localizability testing. Otherwise, it is during this phase that you will discover and fix errors in the source code that preclude localization. Localizability helps ensure that localization will not introduce any functional defects into the application.

Localizability is also the process of preparing an application for localization. An application prepared for localization has two conceptual blocks, a data block and a code block. The data block exclusively contains all the user-interface string resources. The code block, exclusively contains only the application code applicable for all cultures/locales.

In theory, you can develop a localized version of your application by changing only the data block. The code block for all cultures/locales should be the same. The combination of the data block with the code block produces a localized version of your application. The keys to successful world-ready software design and subsequent localization success are:

  • Separation of the code block from the data block
  • Application’s ability to accurately read data regardless of the culture/locale

Once localizability is complete, your application is ready for localization.

Localization

Localization is the process of adapting a globalized application, which you have already processed for localizability, to a particular culture/locale. The process of localizing your application also requires a basic understanding of relevant character sets commonly used in modern software development and an understanding of the issues associated with them. Although all computers store text as numbers (codes), different systems can (and do) store the same text using different numbers. In a general sense, this issue has never been more important than in this era of networks and distributed computing.

The localization process refers to translating the application user interface (UI) or adapting graphics for a specific culture/locale. The localization process can also include translating any help content associated with the application. Most localization teams use specialized tools that aid in the localization process by recycling translations of recurring text and resizing application UI elements to accommodate localized text and graphics.

We use the following programs for localization:

  • Microsoft  Office Professional 2016
  • Microsoft Office Online
  • Ability Office Professional
  • WPS Office Business
  • Thinkfree Office NEO Enterprise Edition
  • Google Docs
  • Adobe Creative Cloud
  • Trados Passolo 2015
  • Trados Studio 2015
  • MemoQ 2015
  • WordFast Professional 5
  • Fluency Now
  • DejaVue X3
  • Alchemy Catalyst Lite
  • Across/crossWeb
  • XTM Cloud
  • SmartCAT Cloud

Subtitling Ingenuity at DanLinguistic

Subtitling

Subtitling is a type of audiovisual translation that has its own specifications, rules, and criteria. The first thing to do before exploring the world of subtitling is to understand that this type of translation belongs to “subordinate translation”. Thus, it is a translation that has restrictions of time and space which directly affect the final result. Our translation depends on these parameters and it does not only consist of translating the textual context, but also supporting us in the image and the audio, with determined time and space.

Space which we have in our translation is limited to 2 lines of subtitles which are usually placed and generally centered at the bottom of the screen. Each line cannot contain more than 35 characters (i.e. any letter, symbol or space). The subtitle (formed by 2 lines) can have up to 70 characters.

In terms of the limits of time, a subtitle has a minimum duration of a second and a maximum duration of 6 seconds on screen.

But, there is a direct relation between the duration of a subtitle and the number of characters that it can contain so that it can be read. These parameters are based on an average reading speed. We cannot read the same amount of text if we have 6 seconds or less. It is estimated that the current average reading speed is 3 words a second. So to read a complete subtitle of 2 lines and 70 characters, we will need at least 4 seconds, which house some 12 words. If we have less time, we must calculate fewer characters.

The subtitling carries a technical part which is the spotting of the subtitles. So, the translator should aim to calculate the moment in which the subtitles appear and disappear on the screen so that the subtitles are synchronized with the audio. Also, the duration of the subtitles and the changes of the camera shot must be taken into account. When a change of shot is produced, the viewer tends to return to lowering their view and re-reading the subtitle, so one must consider, where possible, the shot and scene changes.

Therefore, the process of subtitling consists of the following phases:

  • Spotting: Identifying the entrance and exit times of the subtitles synchronized with the audio, calculating the minimum and maximum duration times and considering the changes in a camera shot and scene.
  • Translation (adaptation): Translation from the original, adapting it and adjusting it to characters permitted according to the duration of the subtitle.
  • Simulation: Representation of the translated subtitles with the image and the audio to check that they meet all of the criteria and that they can be read in a natural way.
  • Correction of errors and readjustment of the text.

A complete free program would probably be “Subtitle Workshop”. It is a tool that can easily be downloaded from the internet and isn´t difficult to use. The program allows you to work with an audiovisual file whilst simultaneously translating the subtitles. The exact time of entrance and exit of a subtitle (criteria) can be introduced, the translation added (adjustment) the result can be seen in the moment (simulation).

In terms of the adjustment, that is – the textual content of the subtitle, there is a series of basic criteria which follow in subtitling. The text which contains subtitles must be a natural text, with the same punctuation, spelling rules, and natural language conventions. The language must not become unnatural when trying to adjust the number of characters, but it must reach an adjustment which is natural and correct. Some of the basic principle criteria are:

  • The cutting of the subtitle, the separation of the two lines, must not interrupt any phrase. A noun or adjective must not be separated in two different lines, nor a noun and a verb, as it must be a natural separation.
  • A short hyphen is used (-) in conversations to indicate that two people are speaking, with a hyphen on each line of the subtitle when someone else is speaking.
  • Italics are used for voices in off, and for songs and audio away from the scene of electronic devices.
  • Quotation marks (“”), recognized abbreviations and figures are used, and where possible capital letters are avoided (used for titles, and signs or written content in the image).

The ideal final result is that the subtitles are synchronized with the audiovisual document, in such a way that it sounds natural and fluent, so much so that the spectator is almost unaware that they are reading and is absorbed in the image, the audio, and the text.

Subtitling in Danish often has to be a compromise because the frequent use of compound words and long words in Danish. The two lines of text: 2 x 37–39  characters including spaces and max. 12 characters per picture second. An average viewer can not manage to view a film sequence and read more than max. 12 characters with full comprehension of both, at the same time, per film seconds. The subtitle must not come out of sync with the picture and must not remain on screen after the picture has changed. There is no space for long sentences, nor for long compound words. The “art” is to get the main content of the original sentence across into Danish sometimes omitting the finer details of the sentence do to these space limitations. This sometimes gives the viewer the impression that the subtitling is badly done, this is not the case but it is bacause of these space limitations.

We use the following programs for the subtitling:

  • Microsoft  Office Professional 2016
  • Microsoft Office Online
  • Ability Office Professional
  • WPS Office Business
  • Thinkfree Office NEO Enterprise Edition
  • Google Docs
  • Adobe Creative Cloud
  • Trados Passolo 2015
  • Trados Studio 2015
  • MemoQ 2015
  • WordFast Professional 5
  • Fluency Now
  • DejaVue X3
  • Alchemy Catalyst Lite
  • Across/crossWeb
  • XTM Cloud
  • SmartCAT Cloud

Database Ingenuity at DanLinguistic

Introduction

How you store and retrieve data in a relational or NoSQL database depends on how well you design the database structure.

What’s a Database?

If you do not know, a database is a place to store information used by software applications. For example, you could have a web-page with a list of companies and all their locations with contact information for each location. Or a banking application on your computer to sort and manage your checkbook. In both cases, it makes sense to store the data in one piece of software called a database. The database has a structure and rules about how to add, edit, delete and read data stored in the database.

Databases also reside in many different places. Some databases exist on only your computer. Other databases have their data shared and divided across hundreds or thousands of databases located in many data-centers all over the world.

Types of Databases

There are at least two types of databases each with different design restrictions. The traditional SQL (Structured Query Language) database, also called a relational database, tends to have more tables (rows of data) and more references, relationships, and consistency between data in those tables. NoSQL violates many of the data consistency rules of SQL databases while providing benefits mostly unavailable with SQL databases.

For example, a NoSQL database works best for applications with massive amounts of data where most activity involves reading data from the database with some writing of data to the database. Reading is less intensive than writing because writing data to a database requires tracking when a database table is open. NoSQL databases tend to be on multiple machines and, in some cases, machines in multiple data centers. Keeping data in sync is comparatively easier and less complex with NoSQL databases. Even in cases where large data sets are not involved, some developers prefer the easier interactions between their code and a NoSQL database.

Another key difference between these two types of databases is design flexibility. SQL databases tend to require more work and care because the underlying structure of one or more tables need to be adjusted when changes happen. NoSQL databases, in contrast, have table structures that make it comparatively easier to change the number of fields included in a database table.

As with anything technical, there are all sorts of exceptions you will encounter. For example, relational databases use sharding and other techniques to manage the synchronization of data across machines and data centers. This article is only an overview to provide context as you learn more about database design.

Data Models

The first step in any database design is the creation of a data model. The model destils all the functionality requirements for an application into data collections, for example, products, customers, and suppliers for an e-commerce site, as well as properties and relationships between these collections of data.

There are several risks data models help limit or avoid:

  • Business processes sometimes can be duplicated in the database structure, creating problems if a process changes. A good data model provides flexibility independent from any process.
  • Needlessly duplicated table in multiple locations within the same database. This is a big issue in relational databases.
  • Data models for related applications differ for no reason. Ideally, a data model takes into account other applications used by the business or individual.
  • Data might be difficult to extract or share with other software applications. If data sharing is important, a data model should ensure data can be extracted easily.

Database and data models typically are represented as graphs. Early stages of development, however, use business requirements and functional specifications to clarify the system a data model must represent and support. In some cases, for example, health care or finance, there may be examples of data models used widely which are adopted or adapted.

The data model also is one of the several factors in the decision about what database management system (DBMS) to use, relational or NoSQL.

NoSQL Database Design

Key-value pairs are the main feature of these databases. Keys are names or unique ID numbers and values range from simple data to documents to columns of data to structured lists (arrays) of key-value data. Each row in a NoSQL table includes the key and its value. The design of NoSQL databases depends on the type of database, called stores:

  • Document Stores pair each key identifier with a document which can be a document, key-value pairs, or key-value arrays.
  • Graph Stores are designed to hold data best represented by graphs, interconnected data with an unknown number of relations between the data, for example, social networks or road maps.
  • Key-Value Stores are the simplest type with every bit of data stored with a name (as key) and its data (value).
  • Wide Column Stores are optimized for queries across large data sets.

There are other ways to describe the range of NoSQL databases available but these are the simplest and most comprehensive categories. And within each type of NoSQL database, functionality differs which can impact database design. For example, MongoDB was evolved from the MySQL project, changing the data model from relational to NoSQL, yet retains most of the indexing, dynamic queries, and other useful features of relational databases.

Perhaps the key design difference between NoSQL and relational databases is the structure of data in each database. Relational databases require data be organized ahead of time. NoSQL databases can have their structure modified on the fly with little impact because they use key-value pairs; updating a data structure in NoSQL can involve adding additional data to the value of one or more keys while leaving other key-value pairs in the database untouched.

Design strategies for NoSQL databases depend on the type of database and the virtues (or negatives) of different data model techniques. Where relational databases have a user-centered approach, asking “What answers can I get from the database?”, NoSQL databases have an application-centered approach, asking “What questions do I have?”

This is a critical difference both in data structures as well as approaches to designing a database.

Configuring a database to provide specific answers entails lots of design and structure up front which limits future flexibility and makes future changes likely to be complicated. Configuring a database to handle many possible questions, in contrast, results in a more flexible database design. Typically data is duplicated in many different places in a database to help answer questions with less effort. NoSQL database design uses a set of rules called BASE (basically available, softstate, eventually consistent) to guide their design.

NoSQL database data model techniques include:

  • Denormalization puts all data needed to answer a query in one place, typically a single database table, instead of splitting the data into multiple tables.
  • Aggregates use light or no validation of data types, for example, strings or integers.
  • Joins are done at the application level, not as part of a database query. This requires more planning to match one type or set of data with another, for example, all examples of a product type (jeans) sorted by manufacturer in an online store.
  • Indexes and key tables to identify and sort data quickly for retrieval.
  • Tree structures can be modeled as a single data entity, for example, a comment with all its responses.

The NoSQL Data Modeling Techniques article linked at the bottom of this article includes a more comprehensive list, additional explanations, and links to learn more about specific data model techniques.

Relational (SQL) Database Design

SQL database design relies mostly on techniques called “normalization.” The goal of normalization is to reduce or eliminate duplicate data in a database to reduce errors in stored data. Each table in a relational database ideally holds data of one type or thing, for example, addresses. The trade-off is less flexibility when application changes impact more than one database table. Relational databases use a set of rules called ACID (Atomicity, Consistency, Integrity, Durability) to guide database design.

The key design steps for a relational database include:

  • Define the purpose of the database.
  • Research and collect all information about data to be included and the purpose of the database over time.
  • Divide the data to be included in subjects or types, for example, user account information. Each of these will (or should) become individual database tables.
  • For each database table, identify the data points to include. Each data point becomes a column in the database table.
  • For each database table, identify the optimal primary key to uniquely identify each row of data.
  • Compare and evaluate how data in your tables relate to each other. Add fields, or possibly tables, to clarify relationships between data within each table. For example, a database with contact information for companies might need to include multiple addresses, phone numbers, and other data for each company.
  • Test your database design with paper then codes queries for the most common tasks. Refine your table design as needed.
  • Normalize the database design to ensure each table represents one thing, or concept, with references and relationships to other tables if/as needed.

We use the following software for database development:

Databases
  • Interbase/Firebird
  • Microsoft SQL
  • MySQL
  • Oracle DB
  • PostgreSQL
  • Maria DB
  • Mongo DB
Database Tools
  • Heidi SQL
  • EMS SQL Management Studio for InterBase/Firebird
  • EMS SQL Management Studio for SQL Server
  • EMS SQL Management Studio for MySQL
  • EMS SQL Management Studio for Oracle
  • EMS SQL Management Studio for PostgreSQL
  • EMS SQL Manager for MySQL Freeware
  • EMS SQL Manager for SQL Server Freeware
  • EMS SQL Manager for PostgreSQL Freeware
  • EMS SQL Manager for Oracle Freeware
  • EMS SQL Manager for InterBase/Firebird Freeware
  • EMS SQL Backup Free for SQL Server
  • EMS SQL Administrator Free for SQL Server
  • dbForge Developer Bundle
  • dbForge Studio for SQL Server
  • dbForge Studio for MySQL Server
  • dbForge Studio for Oracle
  • dbForge Studio for PostgreSQL
  • dbForge Studio for SQL Server Express
  • dbForge Studio for MySQL Express
  • dbForge Studio for Oracle Express
  • dbForge SQL Complete Express
  • dbForge SQL Decryptor
  • dbForge Event Profiler for SQL Server
  • dbForge Search
  • SQL Formatter for SQL Server
  • dbMonitor
  • Skyvia

Software Ingenuity at DanLinguistic

Software Engineering

Software Engineering is concerned with discovering techniques for improving the cost, correctness, and usability of software systems. Unfortunately, these goals are in continual tension with each other. Indeed, most commercial software systems fail on all counts, threatening the health of the software companies and the well-being of software users.

A critical component of achieving these three goals is reducing the complexity of software systems through improved reasoning techniques, system structures, and analysis. A less complex system is less costly to build correctly and more predictable in use. The primary thrust is to cope with the crippling complexity of large systems and the processes that produce them.

Requirements Engineering

Empirical studies show that most of the difficulties in producing large complex systems stem from problems with the requirements, which define what the system is supposed to accomplish. Consequently, methods for acquiring and analyzing requirements can have very large economic leverage. Studies also show that social, political and cultural factors very often lie behind failures in large system development efforts. Our research in requirements is concerned with the use of social science methods and video to develop requirements that will allow the system to succeed in the environment where it will actually be used.

Software Design and Evolution

In the area of support for software development and evolution, the focus has been on the automation of key programming tasks to dramatically lower the bloated costs of software. To improve the programming task, a new generation of tools is using knowledge of a program’s behavior to automate tasks. One example is a tool for assisting restructuring (modularizing) a program without changing the program behavior, as a precursor to enhancement. Such a restructuring can localize future changes, hence lowering the cost of those changes. The current focus of this work is on visualization and user interfaces for high-level restructuring, and improving tool support for widely used programming like C, and automating other program enhancement tasks. These investigations are now pointing to new ways to think about software modularity.

Testing and Analysis

In the area of software testing and analysis, the focus has been on the development of methods for ensuring the dependability of software. Previous work involved the development of a systematic, but an informal method for analyzing software that was successfully used to verify the functional avionics on a Navy airplane. This project called the QDA (Quick Defect Analysis) project is now involved in the analysis of Ada programs. Current work has also resulted in the development of a new approach to the measurement of software dependability called trustability. A program has trustability T if we can be T confident that it is free of faults. The trustability research has both theoretical and practical aspects and includes the development of a trustability measurement support tool.

We use the following languages for software development:

  • Java
  • ActiveNode JS
  • Active Python
  • Active Ruby
  • C
  • C++
  • C#
  • Python
  • Ruby
  • Perl
  • Objective-C/XCode/Swift

We use the following IDE’s for software development:

  • Eclipse IDE
  • Netbeans IDE
  • JetBrains IDE
  • Komodo IDE
  • Komodo Edit
  • Visual Studio
  • Xamarin
  • Aptana Studio IDE
  • Zend Studio IDE
  • XCode
  • BlueJ
  • Xojo IDE
  • Zerynth Studio

Web Ingenuity at DanLinguistic

When it comes to choosing the best web development language for your website, it’s important to remember that there is no single best language.

Instead, a web developer will choose the option that best suits your project, based on the specific functionality or features you want. Which programming languages are most likely to come up in conversation?

An earlier post in this series, “What is Web Development,” described the three parts of web development: client-side scripting, which is a program that runs in a user’s web browser; server-side scripting, which runs on the web server; and database technology, which manages all the information on the server that supports a website.

While there are a couple of basic languages in common use, other languages are used specifically for client-side scripting or server-side scripting.  Here is an overview of the more popular web development languages in use by the industry today.

Basic web development languages
HTML

HTML and CSS are the two most basic web development languages and are used to build nearly all webpages on the Internet.

HTML is the standardized markup language that structures and formats content on the web. Page elements like the titles, headings, text, and links are included in the HTML document. It is one of the core technologies in use on the Internet and serves as the backbone of all web-pages.

CSS

CSS (Cascading Style Sheets) is a stylesheet language that basically allows web developers to “set it and forget it.” Paired with HTML, CSS allows a programmer to define the look and format of multiple web-pages at once; elements like color, layout, and fonts are specified in one file that’s kept separate from the core code of the web-page.

These two languages provide the basic structure and style information used to create a static web-pages — a page that looks the same to everyone who visits it. Many web-pages now are dynamic webpages, which are slightly tailored to each new visitor. To create these more complex web-pages, you need to add more advanced client-side and server-side scripting.

Client-side scripting

Client-side scripting — which includes HTML and CSS — is any code that runs within a web browser. This means that the web browser temporarily downloads all the files from a web server and, in turn, displays a static web page; you would be able to view these files even if you lost your Internet connection (as long as you left your web browser open). JavaScript and ActionScript are the two most commonly used client-side scripts.

JavaScript

JavaScript is the programming language that brings animation, games, apps, interactivity and other dynamic effects to life. After HTML and CSS, it’s the most ubiquitous of the client-side scripts. Some JavaScript applications can even run without connecting back to a web server, which means they’ll work in a browser with or without an Internet connection.

ActionScript

ActionScript is the language used for Adobe Flash, which is especially well suited for rich Internet applications that use Flash animation and streaming audio and video.

Whether you use ActionScript or JavaScript is a matter of personal preference, but if you want to use the popular Adobe Flash Player software to share multimedia applications, ActionScript is a must.

Server-Side Scripting

All websites need to be hosted (i.e. stored) in a database on a web server. Server-side scripting simply refers to any code that facilitates the transfer of data from that web server to a browser. It also refers to any code used to build a database or manage data on the web server itself.

Server-side scripts run on the web server, which has the power and resources to run programs that are too resource intensive to be run by a web browser. Server-side scripts are also more secure because the source code remains on the web server rather than being temporarily stored on an individual’s computer.

PHP

Used by 75 percent of all web servers, PHP is a general-purpose server-side scripting language. The chief advantages of PHP are that it is open source, with a huge online community to support it, and that it’s compatible across multiple platforms. PHP is most often used by websites with lower traffic demands.

Java

According to a study conducted by W3Tech, Java is the server-side language of choice for large-scale websites with a high volume of traffic. Sam’s Club, Amazon and Apple App Store use Java-based web frameworks.

One potential reason for its popularity among high traffic websites is that Java frameworks outperform other language frameworks in raw speed benchmark tests. That means faster server-based web applications for large scale websites. Java Servlets, JSP and WebObjects are examples of server-side solutions that use Java.

Python

Python is a general-purpose, high-level programming language that puts an emphasis on code readability; for web developers, this means they can do more with fewer lines of code than other popular languages.

Python does this through the use of a large standard library, which keeps the actual code short and simple. This library is a file that contains pre-coded functions, provided by the community, which you can download to your server and use in your own code whenever a specific task appears. Like Java, Python was designed for web servers that deal with a large amount of traffic. Shopzilla, Yahoo Maps, and the National Weather Service are examples of sites that use Python.

 Ruby

Ruby is similar to Python in that it was designed to make programming more productive by emphasizing short and simple code that’s concise, consistent and flexible.

Where Ruby differs is in its language or syntax. In Python, there is only one right way to program things, and it’s efficient and fast. In Ruby, there are multiple ways to do the same thing, and some may be faster than others. Which language you use is really a matter of preference.

Ruby on Rails is a very common open-source web framework that enables web developers to create dynamic websites quickly and efficiently. Like Java, Ruby is more frequently used on web servers that deal with a large amount of traffic. Scribd, Hulu, and Twitter all use Ruby.

Pick the best web development language for your needs

This is only a fraction of the web development languages used by the industry today, but they are the ones you are most likely to discuss with a web developer.

Set a clear goal and purpose for your website; the features and functionality you want will ultimately decide the best language for web development. Factors like the type of database you use, the server platform, server software, your budget and the client-side functionality you want are also important considerations in choosing the right language for your web project.

 Trade Policy

We subscribe to the Austrian-born Philosopher of Science Paul K. Feyerabend’s (January 13, 1924 – February 11, 1994) philosophical principle that: Everything Goes (meaning that everything in the universe is in constant internal motion and evolution). In light of this, we do not want to work with translation & web design with: Pornography, Warfare, Warfare Technology, Violence, Crime, Racism, Discrimination, Human Right Violation and Suppression content.

He was Professor of Philosophy at the University of California, Berkeley, where he worked for three decades (1958–1989). His major works include: Against Method (1975), Science in a Free Society (1978), and Farewell to Reason (1987).

Paul K. Feyerabend

Here is a couple of examples of technology we will never work on:

Not many users know that with the latest upgrade of Windows 10 the user gives consent to Microsft to sell the data they are able to collect from the user, with the purpose of targeting add campaign to the end user, not only from Microsoft but also from their affilates. When you install Windows you have to proactively turn off adds in Windows.

http://www.pcworld.com/article/3039827/windows/7-ways-windows-10-pushes-ads-at-you-and-how-to-stop-them.html

The same applies to Google where when you install Google products you give consent to send userstatistics to Google as they claim for “a better browsing experience.” This better browsing experience means targeted advertisement in plain English, so newer consent to send anything or use a Mac or a Linux machine instead.

If you want to stop Google tracking your searches for good, you have to do some proactive tasks and head to the activity controls page and toggle tracking off.

http://www.wired.co.uk/article/google-history-search-tracking-data-how-to-delete

https://en.wikipedia.org/wiki/Internet_privacy

Other Websites

Please note that the video lectures on this web-site are all free YouTube lectures from American universities. You will not get your assignment marked and nor will you get an exam certificate. If you want to get your assignment marked and get a exam certicate, you will have to take the courses at course web-sites like Edureka.org, Coursera.org, Edx.org, Saylor.org, NPTEL, MIT OpenCourseWare, etc.

However, if you want university credits for the course, you will need to sign up at the respective universities, who offer the online courses and pay the tuition fee to the universities. As always in life, you are getting what you pay for! (Se our “Academica” subpage.)