Categories
Featured

I used my DSLR for the first time in years since switching to mirrorless – here’s four things I learned

[ad_1]

Take the strain, and three, two, one, pull! No, I’m not in the gym lifting weights, but in the woods with my Nikon DSLR and raising its optical viewfinder to my eye to compose a picture. It’s my D800‘s first outing in years and it’s quickly reminding me why I was so happy to switch to mirrorless. At 31.7oz / 900g and combined with my Nikon 70-200mm AF-S f/2.8 VR lens (50.4oz / 1430g) it’s well over 80oz / 2300g, and being cumbersome isn’t even the worst part. 

Don’t get me wrong, I’ll come away from this walk in my local woods that’s bursting with fragrant bluebells and wild garlic with some pictures I’m super-excited about (see below), but boy do I have to work that much harder to get the results I want. And without wanting to lug a tripod around, I actually can’t get the same degree of sharpness in my pictures from this day in the dim conditions under a dense tree canopy. 

[ad_2]

Source Article Link

Categories
Featured

Google Meet may finally have trumped Microsoft Teams and Zoom with its super-useful new call switching feature

[ad_1]

Being cut off or having to hang up on important work calls when on the move could be a thing of the past thanks to a new Google Meet feature.

The video conferencing service has announced a new tool that will allow users to transfer between a call on a mobile device to a laptop (or vice versa) with just a click.

[ad_2]

Source Article Link

Categories
Featured

Switching broadband is going to get easier thanks to these new ‘nutrition’ labels

[ad_1]

Starting April 10, the US Federal Communication Commission (FCC) will require internet service providers (ISP) to begin displaying information about their service in a clear and concise manner. The format for the details resembles nutrition labels, like you see on food boxes. But instead of calories, sugars, and fats, the FCC’s Broadband Labels will show off monthly subscription costs, download speeds, and more. 

The purpose of these new rules is to help customers shop around for the best ISP knowing everything the service will provide without the misleading language. It aims to make things more transparent between you and the company so you won’t be sucker punched by a fee you didn’t know was there.

[ad_2]

Source Article Link

Categories
News

Why JavaScript developers are switching to Rust in 2024 and why not

Why JavaScript developers are switching to Rust in 2024

It is becoming apparent that developers who typically work with JavaScript are now turning their attention to Rust, a programming language that stands out for its efficiency and safety. Rust is unique because it doesn’t have a runtime environment and requires that code be compiled before it can be executed. This language has won the hearts of many, as evidenced by its top ranking in the StackOverflow survey for several years. Its growing presence in the JavaScript community is noteworthy, with developers using Rust to boost the performance of various tools and frameworks. This article delves into the key aspects of Rust that are attracting JavaScript developers and provides guidance for those who are eager to learn this robust language.

Rust offers several features that are particularly appealing to JavaScript developers. First and foremost, Rust is a compiled language, which is a stark contrast to JavaScript’s interpreted nature. This means that Rust code must be transformed into a standalone program before it can be run, which contributes to its remarkable speed and efficiency. Another standout feature is Rust’s approach to memory management. It employs a distinctive ownership model that enforces strict rules, effectively preventing common issues such as memory leaks and data races that plague other languages.

JavaScript developers learning Rust

Here are some other articles you may find of interest on the subject of AI coding and programming assistants :

When it comes to working with functions, Rust allows developers to use references and borrowing. This means you can use values in functions without giving away their ownership, promoting safer code reuse and improved concurrency. Additionally, Rust enforces that variables are immutable by default. Once a value is set, it cannot be altered unless explicitly declared as mutable, which helps to reduce unintended consequences in your code.

Rust

  • Primary Use: Systems programming, including web assembly, embedded systems, and performance-critical applications.
  • Language Type: A compiled, statically-typed language.
  • Execution Environment: Compiled to machine code, it runs directly on operating systems or embedded systems.
  • Syntax and Learning Curve: Has a steeper learning curve due to its strict type system and ownership model.
  • Static Typing: Strong and static typing ensures many types of errors are caught at compile time.
  • Concurrency Model: Employs a unique ownership model for safe concurrency without data races.
  • Ecosystem and Community: Growing ecosystem, with a focus on safety and performance; not as vast as JavaScript’s.
  • Performance: Offers high performance, on par with C and C++, due to its low-level control and lack of garbage collection.
  • Memory Management: Manual memory management, guided by its ownership model, which ensures memory safety without a garbage collector.

Rust also comes with its own package manager, Cargo, which offers functionalities akin to NPM but with added features that streamline dependency management and project compilation. Furthermore, Rust is both a statically and strongly typed language, which means that it performs type checking at compile time. This eliminates ambiguous types like ‘any’ or ‘null’, allowing developers to catch errors early in the development process. Lastly, Rust provides robust error handling capabilities, distinguishing between recoverable and unrecoverable errors and offering comprehensive tools to manage them effectively.

For JavaScript developers ready to embark on their Rust learning journey, there are several structured resources available. The Rust Book is an in-depth guide that includes interactive elements and projects, providing a thorough understanding of Rust’s principles. The Official Rust Course is another resource that focuses on syntax and can be accessed through your terminal or browser, catering to different learning styles. Rust by Example is a practical way to learn Rust through documented examples, reinforcing knowledge with real-world scenarios. Lastly, the Standard Library Documentation offers detailed descriptions and examples of Rust’s standard library, expanding your understanding and skill set.

JavaScript

  • Primary Use: Primarily used for web development, both on client-side (front-end) and server-side (with Node.js).
  • Language Type: A high-level, interpreted scripting language.
  • Execution Environment: Runs in web browsers and on servers (using Node.js).
  • Syntax and Ease of Use: Known for its flexible and forgiving syntax, making it accessible for beginners.
  • Dynamic Typing: Uses dynamic typing, which can lead to runtime errors but offers flexibility in development.
  • Concurrency Model: Event-driven and non-blocking I/O model, particularly effective for web servers and interactive web applications.
  • Ecosystem and Community: Has a vast ecosystem with numerous libraries and frameworks (like React, Angular, Vue.js).
  • Performance: Generally slower than compiled languages; performance depends on the JavaScript engine (like V8 in Chrome).
  • Memory Management: Automated garbage collection.

The versatility of Rust is evident in the wide range of applications it can be used for. Developers can create full-stack websites using frameworks like Yew or Rocket, or develop command-line tools with the help of Clap. Rust even makes its way into game development, with engines like Amethyst providing the tools necessary to create games.

  • Compiled Language Without Runtime: Rust requires code compilation into an executable, differing from JavaScript’s interpreted nature. This contributes to Rust’s efficiency and performance.
  • Memory Management through Ownership: Rust’s ownership model enforces rules to prevent memory management errors, a contrast to JavaScript’s automated garbage collection.
  • References and Borrowing: Rust uses references and borrowing for function values without transferring ownership, promoting safer code reuse, unlike JavaScript’s more flexible approach to variable referencing and manipulation.
  • Immutable Variables by Default: In Rust, variables are immutable by default, with mutability being a choice. This contrasts with JavaScript’s flexible variable assignment and mutability.
  • Cargo vs. NPM: Rust’s package manager, Cargo, includes additional functionalities compared to JavaScript’s NPM, streamlining dependency management and project compilation.
  • Static and Strong Typing: Rust’s statically and strongly typed system, with enforced types at compile time, stands in contrast to JavaScript’s dynamic typing. Rust’s approach eliminates ambiguous types like ‘any’ or ‘null’.
  • Error Handling: Rust categorizes errors as either recoverable or unrecoverable, with tools to address all possible errors, unlike JavaScript’s less structured error handling.
  • Applications of Rust: The reference text highlights Rust’s applications in full-stack website development (using frameworks like Yew or Rocket), command-line tools (with Clap), and game development (with Amethyst). This shows Rust’s versatility beyond JavaScript’s traditional domain of web development.
  • Emphasis on Clarity and Strong Typing: Rust’s explicitness and strong typing are advantageous for writing clear and error-free code, a departure from JavaScript’s more flexible and forgiving nature.

For those who are accustomed to JavaScript, exploring the world of Rust can significantly enhance your coding practices. The language’s emphasis on clarity and strong typing leads to the creation of code that is both more understandable and reliable. By familiarizing yourself with the core features of Rust and following the suggested learning path, you can tap into the potential of Rust to improve your programming abilities and contribute to cutting-edge projects.

Filed Under: Technology News, Top News





Latest timeswonderful Deals

Disclosure: Some of our articles include affiliate links. If you buy something through one of these links, timeswonderful may earn an affiliate commission. Learn about our Disclosure Policy.