Tag: programming

  • Choosing the Right Programming Language

    Choosing the Right Programming Language

    In software engineering, selecting a programming language is a pivotal decision for any organization. The appropriate language contributes to a streamlined development workflow and yields a resilient software solution that facilitates swift and efficient debugging, documentation, enhancement and maintenance. On the other hand, selecting an unsuitable language can set a project on a course for failure from the onset. Given the multitude of available options and the magnitude of this decision, how can programmers ensure they make the most judicious language choice?

    A comprehensive and effective decision-making process begins with a thorough understanding of the current landscape, historical context and the evolutionary trajectory of programming languages. It is also imperative to critically appreciate the benchmarks employed by computer scientists and the industry’s best practices in language selection. Programmers who invest time to enhance their expertise in these domains will mitigate the risk of selecting a language deficient in essential features or one poised for obsolescence, thereby safeguarding the resulting product’s longevity, relevance and success.

    The evolution of programming languages

    Charles Babbage is credited with creating the first computer between 1833 and 1871. He spent nearly 40 years perfecting his invention, which ultimately could perform simple calculations. While Babbage is recognized for building the initial computer, in 1883, Ada Lovelace played a pivotal role by devising the programming language for Babbage’s invention. Today, 140 years later, more than 500 distinct programming languages facilitate human-computer interaction. The continuous adaptation and innovation of programming languages have paralleled the dynamic evolution of technology.

    Contemporary programming languages, such as Swift, Kotlin and Go, exhibit more user-friendly syntax and enhanced ease of use than their predecessors, including SQL, MATLAB and C. Recent languages often integrate features that were unavailable just a few years ago. As such, programmers have the ability to select from a diverse array of languages, identifying the most suitable for their project that facilitates the efficient completion of tasks. For example, Swift is used in Mac and iOS platforms, C# is tailored for the .NET Framework and JavaScript, renowned for constructing the internet, is a testament to the varied roles these languages play in diverse technological domains.

    Selecting the right programming language

    With vast options of programming languages available, one of the greatest challenges is determining which is best suited for a particular project. Comparing the various features and syntaxes of languages can be complicated. Based on recent industry trends, Table 1 details the key programming languages in popular areas/domains.

    Area/Domain

    Programming Languages

    Web development

    JavaScript, Java, HTML5, Ruby, TypeScript

    Mobile development

    Kotlin, Swift, Objective-C, ++, C#

    Data science

    Python, R, SQL, Scala, Julia, MATLAB

    Artificial intelligence and machine learning

    Python, R, Java, Lisp, Prolog, JavaScript

    Cloud computing

    Java, Python, JavaScript, Golang, .Net Core

    Cybersecurity

    Perl, C++, SQL, Ruby, Rust, Assembly

    Table 1: Key programming languages by domain

    Scientifically benchmarking programming languages

    One of the most efficient and effective ways to differentiate programming languages is through benchmarking, a process through which computer scientists analyze and compare programming languages. For instance, they may compare the performance of different programming languages directly against each other. They may also assess performance differences between different compilers or runtimes of the same language with the same source code. In addition, they may assess real server environments such as hosted cloud VMs or Docker/Podman and their effects on the performance of various programming languages.

    Numerous renowned computer scientists have begun benchmarking programming languages, making it easier to tell them apart and select the best language for a particular task. The Computer Language Benchmarks Game is a popular free software project that compares how popular programming languages implement simple algorithms. Programmers can view results and better comprehend each language, its speed and optimal use cases. Additionally, several reputable websites, such as Programming Language and compiler-Benchmarks and Kostya-benchmark, provide computer scientists with side-by-side comparisons of different programming languages, taking into account various performance issues.

    Ranking of programming languages by popularity (2023)

    When selecting a programming language, some of the factors for programmers to consider include the targeted platform, production time, language elasticity, community/support, the programmer’s experience with the language, and the language’s current popularity. Popularity is an important factor because even though more than 500 programming languages are available, most of the industry relies on just 10, making those the most likely to remain in use. Table 2 highlights the 10 most popular programming languages based on the PYPL Index, which assesses how frequently language tutorials are searched for on Google and Stack Overflow’s Developer Survey 2023.

    Ranking

    PYPL Ranking

    September 2023

    Stack Overflow’s

    Developer Survey 2023

    #1

    Python

    JavaScript

    #2

    Java

    HTML/CSS

    #3

    JavaScript

    Python

    #4

    C#

    SQL

    #5

    C/C++

    TypeScript

    #6

    PHP

    Bash/Shell

    #7

    R

    Java

    #8

    TypeScript

    C#

    #9

    Swift

    C++

    #10

    Objective-C

    C

    Table 2: 2023 10 most popular programming languages

    When making the final programming language selection, it is essential to remember that no programming language will be perfect for any particular project. As such, programmers need to allow for some flexibility in the selection process. Determine what is most important, such as speed, performance or fewer lines of code, and then sacrifice other areas to ensure a solution that best fits the identified priorities.

    The future of programming languages

    Today’s programming world is centered around artificial intelligence (AI) and machine learning (ML). As such, languages like Python, currently a driving force behind AI, will likely grow in popularity. Moving forward, programmers can expect an increase in the popularity of JavaScript, which dominates web browsers; Java, which is prevalent in the business world; Kotlin, which is widely used in apps and C++, which is used frequently in system-level programming and game development.

    As technology evolves, programming languages—both existing and yet-to-be-developed—will play a pivotal role in shaping the future of a digital landscape. Their role in incorporating new tech features, expanding ML, augmenting AI and furthering the internet-of-things (IoT) will become increasingly critical.

    As new languages appear and evolve, old languages will fade away. To that end, Analytics Insight recently published a list of 10 programming languages, including currently well-used languages like Visual Basic and COBOL, which it expects to dramatically decrease in popularity and use by 2030. For this reason, it is essential for developers and decision-makers to stay up to date on the ever-evolving world of programming languages. As existing languages are retired and new ones enter the marketplace, it is imperative that professionals learn promising new languages and continually upskill. Those who commit to ongoing training and education will simplify the programming language selection process, increase their chances of running a successful project, and solidify their position in an increasingly competitive marketplace. Those who don’t risk going extinct alongside once-popular programming languages.

  • No, Dev Jobs Aren’t Dead: AI Means ‘Everyone’s a Programmer’? ¦ Interesting Intel VPUs

    No, Dev Jobs Aren’t Dead: AI Means ‘Everyone’s a Programmer’? ¦ Interesting Intel VPUs

    Welcome to The Long View—where we peruse the news of the week and strip it to the essentials. Let’s work out what really matters.

    This week: Nvidia’s CEO grabs headlines by saying your career is toast, and Intel is still fighting. (more…)

  • Clinical Trials: Programming for Scale, Speed and Success

    Clinical Trials: Programming for Scale, Speed and Success

    According to the Journal of the American Medical Association (JAMA), the median cost of bringing a new drug to market is $985 million and the average cost is $1.3 billion. However, those in health care hoping to harness promising new treatments, and patients facing steep prescription costs, see this as progress. After all, previous studies estimated the average price for developing a drug to be as high as $2.8 billion, a cost usually recouped at the expense of consumers. While savings are being realized, trials still come with quite a price tag—but the reasons why are understandable. First, clinical trials are complex and, simply put, time is money. The final stage alone, the Phase 3 clinical trial, can involve tens of thousands of participants, each with hundreds or thousands of data points that need to be tracked over a number of years. This can produce hundreds of millions of data points that must be protected, secured and blinded, and all of which must be analyzed by numerous applications.

    Many cite the fast development of a COVID-19 vaccine as proof that the process can be expedited. While the vetting of these vaccines was thorough, the processes benefited from unprecedented resources, industry and government cooperation and global pressure to quickly find a way to slow a highly infectious disease. Even so, one can’t help but wonder why clinical trials typically take six to seven years? Haven’t we learned how to speed up trials without jeopardizing health or draining budgets?

    The short answer is yes—there is a way to reduce the time and resources needed for clinical trials. Pharmaceutical companies use dozens of software platforms from an array of vendors in their trials. As a result, crucial data gets trapped in unconnected silos, adding complexity and stalling progress. However, by unifying apps and data stores in one integrated system, trial efficiency can be raised and time-to-completion reduced by over 20%.

    Raising a Platform

    Deloitte noted that COVID-19 revealed health care’s need for structural and technology transformation, adding that its future will be “enabled by radically interoperable data, artificial intelligence (AI) and open, secure platforms.” The same holds true for clinical trial data software platforms; however, creating a unified system is an enormous undertaking for software developers and software engineers. Most importantly, any unified system must be able to provide the following four capabilities.

    ● Security: Data in platforms must not only be protected from external threats such as hackers and ransomware but it must also be blinded. The ideal is a double-blind clinical trial in which neither participants nor their physicians know who received the actual drug and who received the placebo.
    ● Modeling: A platform must be capable of extending a data model for each clinical trial to prevent the need to rebuild every time. The models, and the platform overall, must be flexible but still capable of managing hundreds of millions of records across multiple trials.
    ● Extensibility: Over the course of years, data collected—even in a single trial—may change. The ability to extend a scheme on the fly to fit evolving needs can save an enormous amount of time versus building a platform and transferring data. This is especially true when you have millions upon millions of data points.
    ● Ease: A platform must be easy to modify by non-programmers. If a trial designer can implement rules without having to bring in a programmer, the trial will move ahead much more quickly.

    Key to being able to raise an effective clinical trial platform are software engineers and developers. According to the Bureau of Labor Statistics, software developer jobs alone will grow more than 22% by 2029—faster than all other occupations combined. While this is good news for software pros, demand will create a shortage exceeding 1.2 million by 2026, which isn’t so great for the pharmaceutical companies that need talent.

    Then again, there are purpose-built platforms available that provide data, software, services and an ecosystem of partners to support functions from research and development through commercial availability. They’re designed to bring such products to market faster and more efficiently while maintaining complete compliance. The platforms can not only be comprehensive, but they can also mitigate reliance on developers and engineers, with regular provider updates future-proofing operations and decreasing investments.

    Programming for Success

    First and foremost, pharmaceutical companies are achieving faster trial goals by leveraging the cloud and DevOps. In doing so, all data can reside in a central repository that’s accessible from anywhere. There’s no hardware requiring time-consuming manual configuration. What’s more, modern cloud infrastructures are resilient, secure and robust. And all of this is largely being made possible by software-as-a-service (SaaS) platforms.

    Despite this progress, the need to technologically bolster trials continues. AI is now being applied to auto-classify documentation. Naturally, these types of developments require the implementation of programmability and extensibility at scale. The best minds in software engineering have made considerable gains. It’s now up to pharma to ensure their trials and operations continue to be programmed for success.