Best of InfoWorld2024

  1. 1
    Article
    Avatar of infoworldInfoWorld·1y

    Just say no to JavaScript

    JavaScript, created in a week in 1995, has become the most common programming language despite its numerous pitfalls. The author argues for TypeScript as a superior alternative due to its expressive and powerful type system, which enhances code clarity and maintainability. The post rebuts common objections to TypeScript and advocates for its gradual adoption.

  2. 2
    Article
    Avatar of infoworldInfoWorld·2y

    Two good Visual Studio Code alternatives

    Several alternatives to Visual Studio Code, such as Zed, Eclipse Theia IDE, Lite XL, and Cursor, offer distinct advantages. Zed and Cursor are particularly notable for their native AI integrations. Zed, built in Rust, is exceptionally fast, leveraging GPU acceleration and supporting multiple large language models. Cursor, a fork of Visual Studio Code, focuses on advanced code completion and chat functionalities. Both editors are available for Linux and macOS, with Zed also coming soon to Windows. Theia and Lite XL offer unique features but have limitations regarding speed and plugin compatibility.

  3. 3
    Article
    Avatar of infoworldInfoWorld·2y

    11 open source AI projects that developers will love

    Explore 11 open source AI projects aimed at easing software development. Projects like Upscayl enhance image resolution, Nyro automates mundane tasks, and Wren AI translates natural language into SQL. Tools like Geppetto and E2B sandboxes integrate AI with productivity tools, while DSPy and Guardrails optimize AI model training and accuracy. These projects demonstrate the potential of AI in transforming everyday tasks and development workflows.

  4. 4
    Article
    Avatar of infoworldInfoWorld·2y

    Advanced programming with Java generics

    This comprehensive guide dives into advanced programming with Java generics, covering key concepts like type inference, bounded and unbounded type parameters, type erasure, and wildcards. Learn how type parameters enhance type safety, flexibility, and readability in your Java code. Examples illustrate the use of generic methods, multiple bounds, and wildcards to create robust and flexible Java applications.

  5. 5
    Article
    Avatar of infoworldInfoWorld·2y

    What senior developers know

    Senior developers distinguish themselves through hard-earned experience, understanding the importance of writing clear and readable code, avoiding complexity, resisting the temptation to rush, and taking short-term pain for long-term gain. They know that maintaining high code quality and simplicity can lead to better overall outcomes in the development process.

  6. 6
    Article
    Avatar of infoworldInfoWorld·2y

    The worst programmer I know

    Maintaining legacy code involves understanding and working with the often convoluted and outdated code written decades ago. The post reflects on the challenges of maintaining such code, the evolution of programming practices, and the realization that today's code will also be seen as antiquated in the future. The author emphasizes humility and respect for the efforts of past developers while acknowledging the continuous growth of the software engineering profession.

  7. 7
    Article
    Avatar of infoworldInfoWorld·2y

    Best practices for handling exceptions in C#

    Effective exception handling is crucial for building robust applications. Key practices include deriving custom exceptions from the Exception class, handling exceptions at the highest level in the call hierarchy, using specific exceptions for clarity, employing try/catch/finally blocks for resource cleanup, and avoiding the re-throwing of exceptions to maintain stack trace integrity. Always log exceptions properly and use validation logic to minimize the need for exceptions.

  8. 8
    Article
    Avatar of infoworldInfoWorld·2y

    7 JavaScript language elements every developer needs

    Learn about the most searched JavaScript language elements, including arrays, 'for' loops, and the 'forEach' method. These are essential fundamentals for JavaScript developers.

  9. 9
    Article
    Avatar of infoworldInfoWorld·2y

    Why scrum is dumb

    The author argues that scrum is ineffective and misaligned with agile principles, primarily due to its rigid structure and continuous cycle of sprints. They suggest a more flexible approach where work is broken into natural chunks, each completed in an appropriate time frame, and adapting to changes as they occur. This method emphasizes true agility over procedural adherence.

  10. 10
    Article
    Avatar of infoworldInfoWorld·2y

    I switched to a vertical mouse and I’m never looking back. Here’s why.

    Vertical mice are designed to keep hands in a more natural 'handshake' position, reducing wrist and arm strain. They may take some time to get used to, but can significantly improve comfort and reduce repetitive stress injuries compared to conventional mice. With many options available at different price points, switching to a vertical mouse might be a worthwhile investment for those who spend long hours using a computer.

  11. 11
    Article
    Avatar of infoworldInfoWorld·2y

    10 ways to destroy developer happiness

    Tips for keeping software developers happy at work, including avoiding management mistakes, providing learning opportunities, maintaining a healthy work-life balance, setting clear expectations, giving meaningful projects, offering necessary tools and support, recognizing accomplishments, providing challenging work, and avoiding micromanagement.

  12. 12
    Article
    Avatar of infoworldInfoWorld·2y

    The machine learning certifications tech companies want

    Machine learning certifications are becoming increasingly valuable as organizations leverage AI for various applications such as product enhancement, speech recognition, and fraud detection. Experts suggest that these certifications provide structured learning, proof of skills, and can lead to better job prospects. Popular certifications include AWS Certified Machine Learning – Specialty, Databricks Certified Machine Learning Professional, Google Cloud Professional Machine Learning Engineer, Microsoft Certified: Azure Data Scientist Associate, and Stanford University's Machine Learning Specialization. While certifications can enhance employability, hands-on experience with machine learning tools is also crucial.

  13. 13
    Article
    Avatar of infoworldInfoWorld·2y

    Intro to multithreaded JavaScript

    JavaScript, despite its single-threaded nature, can achieve true parallelism using modern multithreading approaches like web workers and worker threads. The difference between concurrency and parallelism is explained, and examples highlighting the use of web workers in the browser and worker threads in Node.js are provided. Essential code snippets illustrate how to implement these techniques to perform concurrent and truly parallel tasks in JavaScript.

  14. 14
    Article
    Avatar of infoworldInfoWorld·2y

    JDK 23: The new features in Java 23

    Java Development Kit (JDK) 23, set for release on September 17, will feature previews of module import declarations, stream gatherers, structured concurrency, and scoped values. Notably, string templates have been dropped. JDK 23 will also bring enhancements such as a new functional interface for scoped values, deprecation of certain memory-access methods in `sun.misc.Unsafe`, and a generational mode default for the Z Garbage Collector. Furthermore, it includes updates to the vector API, Markdown documentation comments, and primitive types in patterns, `instanceof`, and `switch`.

  15. 15
    Article
    Avatar of infoworldInfoWorld·2y

    Data storage for front-end JavaScript

    This post explores various options for storing data in front-end JavaScript programs, including JavaScript variables, saving data on the server, using the web storage API, cookies, and IndexedDB. It also mentions the service worker cache API for caching responses. The post concludes with a discussion on data persistence using WebAssembly.

  16. 16
    Article
    Avatar of infoworldInfoWorld·1y

    10 hot programming trends — and 10 going cold

    Programming trends are continuously evolving, with certain technologies gaining popularity while others lose steam. Emerging trends include repatriation to control cloud bills, AI partners in coding, the use of memory-safe languages like Rust, and the adoption of WebAssembly for faster code execution. Meanwhile, traditional pair programming, C/C++ languages, and interpreters are seeing a decline in favor. Other shifts include a preference for CPUs over GPUs due to cost efficiency, the rise of zero-knowledge proofs for better privacy, and the popularity of static site generators. Trends reflect the adaptability of companies seeking better performance, cost control, and security.

  17. 17
    Article
    Avatar of infoworldInfoWorld·2y

    4 keys to writing modern Python

    To write modern Python in 2024, it's essential to understand type hinting, virtual environments, new syntax, and effective testing. Type hinting improves code quality and readability. For project and dependency management, tools like Pyenv, Pipenv, Poetry, PDM, Hatch, and uv offer various functionalities. Recent Python features include the walrus operator, positional-only parameters, and structural pattern matching, enhancing code efficiency and flexibility. For testing, Pytest is recommended over the built-in unittest for its flexibility and add-ons, complemented by code coverage tools like Coverage.

  18. 18
    Article
    Avatar of infoworldInfoWorld·2y

    The best Python libraries for parallel processing

    The post introduces seven Python libraries that help distribute a heavy workload across multiple CPUs or compute clusters, addressing Python's single-threaded limitations. Libraries discussed include Ray, Dask, Dispy, Pandar·lel, Ipyparallel, Joblib, and Parsl, each catering to different needs such as machine learning, data science, and general parallel processing tasks. Highlights include Ray's minimal syntax and cluster management, Dask's centralized scheduler and actor model, and Joblib's efficient disk caching and parallelization capabilities.

  19. 19
    Article
    Avatar of infoworldInfoWorld·2y

    6 security best practices for ASP.NET Core

    Learn about 6 security best practices for ASP.NET Core, including enforcing HTTPS, using HSTS, preventing CSRF attacks, thwarting XSS attacks, preventing SQL injection, and creating custom error pages.

  20. 20
    Article
    Avatar of infoworldInfoWorld·2y

    JDK 24: The new features in Java 24

    JDK 24, set for release on March 18, 2025, will include improvements to the G1 garbage collector and introduce warnings for unsafe uses of the Java Native Interface (JNI). Other potential features could follow previews from JDK 23, such as enhancements to the class-file API, stream gatherers, structured concurrency, and the vector API. JDK 24 will be a non-long-term support release, receiving only six months of Premier-level support.

  21. 21
    Article
    Avatar of infoworldInfoWorld·2y

    Angular 18 will arrive next week

    Angular 18, the upcoming release of Google's web app development framework, is set to arrive with features like deferrable views and declarative control flow moving out of developer preview. Other features include zoneless change detection, Angular DevTools enhancements, default content for ng-content, and a new docs website.

  22. 22
    Article
    Avatar of infoworldInfoWorld·2y

    Microsoft releases official OpenAI library for .NET

    Microsoft has released an official OpenAI library for .NET, offering full REST API support and compatibility with flagship models like GPT-4o. Available via NuGet, the library includes sync/async APIs, streaming completions, and .NET Standard 2.0 compatibility. It supports extensibility and aims to ensure seamless integration with OpenAI and Azure OpenAI services.

  23. 23
    Article
    Avatar of infoworldInfoWorld·2y

    Why developers should put the database first

    Developers are being advised to prioritize the database in their application development journey. Data is considered the most important element of computing and should be the first choice in the technology stack. Various options, such as SQLite, NoSQL databases, and Neurelo, can help developers put the database first.

  24. 24
    Article
    Avatar of infoworldInfoWorld·1y

    Cython tutorial: How to speed up Python

    Cython is a tool for making Python code faster by translating it into C. This tutorial explains how to convert Python code into Cython, use it in a production application, and provides a simple example. The new Cython syntax is now compatible with Python's own syntax, making code linting easier. The post also covers important aspects like compiling Cython code, using type annotations, leveraging the `cfunc` decorator, and managing the Global Interpreter Lock (GIL). Additionally, it discusses profiling Cython code to identify and optimize performance bottlenecks.

  25. 25
    Article
    Avatar of infoworldInfoWorld·2y

    Python threading and subprocesses explained

    Python provides threading and multiprocessing to parallelize workloads, helping to manage tasks that would otherwise block each other. Threads in Python are serialized due to the Global Interpreter Lock (GIL), making them suitable for I/O-bound operations. Processes, on the other hand, run independently with their own GILs and are better for CPU-bound tasks. The `Pool` object simplifies handling both threads and processes. The post discusses the upcoming free-threaded Python without GIL (PEP 703) and the concept of subinterpreters (PEP 734) for future concurrency improvements in Python.