Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds

Tech News - Languages

202 Articles
article-image-europython-society-announces-the-guido-van-rossum-core-developer-grant-program-to-honor-python-core-developers
Natasha Mathur
01 Feb 2019
3 min read
Save for later

EuroPython Society announces the ‘Guido van Rossum Core Developer Grant’ program to honor Python core developers

Natasha Mathur
01 Feb 2019
3 min read
EuroPython Society (EPS) announced a new grant program yesterday for ‘Python core developers’ in place for the future EuroPython conferences, named “Guido Van Rossum Core Developer Grant”. The program has been named after Guido Van Rossum, Python Chief, in recognition of his dedication towards leading the team for almost 20 years, before he stepped down from his position as the ‘Benevolent dictator for life’ (BDFL), back in July last year. It has been designed to honor the ‘Python core developers’ who work in a small group, and work countless hours (even in free time), often coming close to burnout as not many new core developers join the team. Under the developer grant program, all core Python developers will be awarded a free entry to the future EuroPython conferences, starting with EuroPython 2019 in Basel, Switzerland, that takes place between 9th to 14th July every year. This, in turn, will help grow the team and will give them a place to meet, where they can demonstrate their work and invite new developers. Who are ‘Python Core Developers’? As far as eligibility is concerned, EPS states that developers falling under the term “Python Core Developer” are eligible. Python core developers are those who have been granted the commit rights to the CPython repository. Even if you give up the commit rights or go inactive, you still keep the status of a ‘Python core developer’. EPS has also provided the links to “Github Python core group members”, Python-Dev Guide Log, and Python Dev Guide Experts Index, where you can check your eligibility for the grant program. However, in case you are not listed on one of these but have contributed to the CPython repository, you can provide links to those patches to the Society. Also, EPS mentions that it reserves all the rights to remove the grant eligibility (despite him/her falling under the above-mentioned lists) of a developer in case he/she acts ‘without good faith’ or goes against the EPS Code of Conduct. “We all love Python..(and) believe it is important to give something back to the main team of developers who have contributed lots of their time and energy to make Python happen: the Python Core Developers”, states EPS. For complete information, check out the official Core Developer Grant website. “With Python, you can create self-explanatory, concise, and engaging data visuals, and present insights that impact your business” – Tim Großmann and Mario Döbler [Interview] Python serious about diversity, dumps offensive ‘master’, ‘slave’ terms in its documentation Top 7 Python programming books you need to read
Read more
  • 0
  • 0
  • 10722

article-image-intellij-idea-2018-3-is-out-with-support-for-java-12-accessibility-improvements-github-pull-requests-and-more
Savia Lobo
22 Nov 2018
7 min read
Save for later

IntelliJ IDEA 2018.3 is out with support for Java 12, accessibility improvements, GitHub pull requests, and more

Savia Lobo
22 Nov 2018
7 min read
Yesterday, the JetBrains community announced IntelliJ IDEA 2018.3, this year’s third major update. The IntelliJ IDEA 2018.3 is a massive new update that delivers Java 12 support, Multiline TODO comments, GitHub Pull Requests, Git submodules, Accessibility improvements, and more. Major updates in the IntelliJ IDEA 2018.3 Java Updates Support for Java 12: The 2018.3 version adds an initial support for the upcoming Java 12. Users can preview the Raw String Literals (JEP 326) in the IDE. Quickly spot duplicates: Users can now quickly spot duplicates in more complicated cases using this IDE. Java Stream API improvements: Redundant sorted calls made before the subsequent min call are now easily detected. New data-flow-based inspection: The new inspection known as ‘Condition is covered by further condition’ detects situations where the first condition is unnecessary as it’s covered by the second one. The new IDE provides a quick-fix to remove such redundant conditions. Detection of redundant usages of the @SuppressWarning annotation: The IDE now identifies situations where a suppressed inspection no longer addresses any warnings in the associated method body, class, or statement. Editor Updates Issues in code are highlighted: The IDE highlights the first and all subsequent TODO comment lines in the editor and displays them in the TODO tool window. New indentation status bar: A new indentation status bar displays the size of the indent in the current file. Improvements in the EditorConfig support: You can create a scope to disable code formatting from being done on specific files and folders. Go to the ‘Formatter Control’ tab in Preferences / Settings | Editor | Code Style. Syntax highlighting and code completion are now available for EditorConfig files. Version Control Updates Initial support for GitHub Pull Requests:  With this users can now view PRs in their IDE. Support for Git submodules: update your project, commit changes, view diffs, and resolve conflicts. New GitHub Pull Requests tool window: With this tool window, users can preview all the pull requests in your GitHub repository. Advanced navigation in VCS Log: Users can use the Forward and Back navigation actions while they are in the VCS Log after they navigate from the commit hashes to the commit in the VCS Log tab, or after they use the Go to hash/branch/tag action. Simply use the left and right arrow keys to navigate to the child or parent commit. Preview differences in the File History tab: Diff Preview is now available in the File History tab of the Version Control tool window. Kotlin Updates Kotlin 1.3 support: IntelliJ IDEA can help you migrate Kotlin project to Kotlin 1.3 and perform all the required changes in obsolete code to make it compliant with the latest state of the libraries. Enhancements in multiplatform project support: In Kotlin 1.3, the model of multiplatform projects has been completely reworked in order to improve expressiveness and flexibility, and to make sharing common code easier. IntelliJ IDEA provides a set of project examples that cover the most common use cases. New Kotlin Inspections & Quick-fixes: Since the release of IntelliJ IDEA 2018.2, the Kotlin plugin has got over 30 new inspections, quick-fixes, and intentions that helps write a code much more effectively. Spring & Spring Boot Updates Spring Boot 2.1 support: IntelliJ IDEA 2018.3 fully supports Spring Boot 2.1. Configuration values annotated with @DataSize are validated using the default @DataSizeUnit if specified. Spring Initializr improvements: While creating a project using Spring Initializr, the IDE will suggest installing or enabling appropriate plugins to ensure that support for all selected technologies is present. Better JPA and Spring Data support for Kotlin: Now the IDE can automatically inject JPQL into query strings, providing completion for entity names and parameters. Users can write Spring Data interfaces in Kotlin, and IntelliJ IDEA will understand the entities used. The IDE provides smart completion for method names and quick-fixes for parameters. Maven Updates Users can now easily delegate all their build and run actions to Maven. They simply have to go to Preferences (Settings) | Build, Execution, Deployment | Build Tools | Maven | Runner and select the new Delegate IDE build/run actions to maven option. JVM Debugger Updates Attach to Java processes that were started without a debug agent:  After attaching to a process, users will be able to view the current thread’s state and variable values, and use the memory view. If users want to attach the debugger to their local process, they can use the handy new Attach Debugger action, which is available in the Run Tool Window Async stack traces in remote JVMs: IntelliJ IDEA 2018.3 now supports async stack traces in remote JVMs. To start using the agent remotely: copy /lib/rt/debugger-agent.jar to the remote machine. add -javaagent:debugger-agent.jar to the remote JVM options. Action to remove all breakpoints: IntelliJ IDEA 2018.3 comes with handy new actions that remove all the breakpoints in a project, or all the breakpoints in the file. JavaScript & TypeScript Updates Improved Angular support: This includes much more accurate code completion and Go to definition for variables, pipes and async pipes, and template reference variables. Autoimports in JavaScript: IntelliJ IDEA can now automatically add imports for symbols from the project’s dependencies, in JavaScript files. This works as long as there’s a TypeScript definition file inside the package, or the package contains sources written as ES module. Support for Node.js worker threads: Users can now debug Node.js workers in IntelliJ IDEA. Users should be cautious of using Node.js 10.12 or above and the experimental-worker flag. The IDE provides code completion for the worker threads’ API. Improved flexibility with ESLint and TSLint: Users can override severity levels from the linter’s configuration file and see all problems from the linter as errors or warnings. Kubernetes Update Support for Helm resource files: The IDE now resolves the Helm resource template files and provides with editing support, which includes code completion, rename refactoring, and inspections and quick-fixes. Navigation in Helm resource files: The IDE lets users navigate from a value’s usage to its declaration in the chart’s values.yaml file. Helm template result preview: The IDE can now preview the result of the Helm template rendering in the diff. Helm dependency update: A new Helm Dependency Update action is available to download the external tgz dependencies (or update the existing ones) and display them in the project tree. Database Updates Added support for Cassandra database: With this release, the team has added support for the NoSQL database, Cassandra. Improvements in SQL code completion: Now code completion works for: non-aggregated fields in GROUP BY, all the columns are listed in SELECT, MERGE, and INSERT INTO table variable, named parameters of stored procedures, numeric fields in SUM() and AVG(), FILTER (WHERE) clause, and field types in SQLite. Introduction to table alias: One can now use the Introduce table alias action to create an alias directly on the table, and this alias will automatically replace usages of the table’s name. Single connection mode: In IntelliJ IDEA 2018.3 users can view any temporary objects in the database tree. Also, it’s possible to use the same transaction in different consoles. To know more about these and other updates in detail, visit the JetBrains blog. IntelliJ IDEA 2018.3 Early Access Program is now open! What’s new in IntelliJ IDEA 2018.2 How to set up the Scala Plugin in IntelliJ IDE [Tutorial]  
Read more
  • 0
  • 0
  • 10649

article-image-julia-0-7-has-been-released-time-to-prepare-for-julia-1-0
Pavan Ramchandani
13 Jun 2018
2 min read
Save for later

Julia 0.7 has been released - it's time to prepare for Julia 1.0

Pavan Ramchandani
13 Jun 2018
2 min read
Julia 0.7  announced by the Julia developer team was speculated for a long time after v0.6 was released last year. This sets the gate open for Julia v1.0 since we had seen discussions and forecast about the v1.0 after v0.6 was out. Most features included in Julia v0.7 are the feature set for Julia v1.0 with few improvements and bug-fixes. Nothing is confirmed by the Julia team yet but the community is predicting Julia v1.0 to be next after Julia 0.7. Important features in Julia 0.7 are as follows: New macros defined for testing the local variable. Destructuring in function arguments so that the variable in a function expression gets unpacked into the local variable. Keyword argument containers will be named tuples. Keyword arguments will be required in the declaration to avoid the exceptions. To know the whole list of specifications, check out the release notes page here at Julia’s GitHub repository. Julia 0.7 will be released with exceptions in compatibility for functionalities of Julia 0.6. These exceptions will, however, discontinue in Julia 1.0. Apart from this, Julia 1.0 will add some functionality that will be prevented in Julia v0.7. It seems to be a bit complicated compatibility planning by Julia community, which is expected to get sorted with Julia 1.0. The community hinted Julia 0.7 and 1.0 to be identical. This means programs that are running on Julia 0.7, will work exactly the same on 1.0 without any warnings. The release time for Julia 1.0 is expected to be short after Julia 0.7. Julia 0.7 is said to be stable and production ready, but the community advised to keep the deprecations of features in mind. Additionally, when developers upgrade to Julia 1.0, they will have to run the tests and use cases all over again. Basics of Programming in Julia Computer vision is expanding quickly. Here’s why. Visual Studio 2019: New features you should expect to see
Read more
  • 0
  • 0
  • 10441

article-image-winners-for-the-2019-net-foundation-board-of-directors-elections-are-finally-declared
Amrata Joshi
29 Mar 2019
4 min read
Save for later

Winners for the 2019 .NET Foundation Board of Directors elections are finally declared

Amrata Joshi
29 Mar 2019
4 min read
The result for the .NET Foundation Board of Directors 2019 is finally revealed. Out of the 476 voters, 329 casted ballots in this election. After counting the ballots using Scottish STV (Single Transferable Vote), Jon Skeet, Sara Chipps, Phil Haack, Iris Classon, Ben Adams, Oren Novotny, and Beth Massi were declared as winners. In total there were 45 candidates competing for 6 seats. Beth Massi has been appointed by Microsoft while the rest got elected by .NET Foundation Members. Following are the winner profiles Jon Skeet: A Java developer at Google in London and is also C# author and community leader. https://twitter.com/jonskeet/status/1111540160305475584 Sara Chipps: Engineering Manager at Stack Overflow. https://twitter.com/SaraJChipps/status/1111458522418552835 Phill Hacck: A developer and author, and best known for his blog, Haacked. https://twitter.com/haacked/status/1111493618441703427 Iris Classon: Software developer, cloud architect at Konstrukt. She is also a member of MEET (Microsoft Extended Experts Team) Ben Adams: Co-founder and CTO of Illyriad Games. https://twitter.com/jongalloway/status/1111324076981682176 Oren Novotny: Microsoft’s Regional Director, MVP, and chief architect of DevOps & modern software at Insight. https://twitter.com/onovotny/status/1111410983749115905 Beth Massi: Product Marketing Manager for the .NET Platform at Microsoft and has previously worked for the .NET Foundation in 2014. https://twitter.com/BethMassi/status/1108838511069716480 How did the election process go The candidate's votes for a round are calculated by taking the sum of the votes from the previous round and votes received in the current round. The votes received in the current round and votes transferred away in the current round represent “votes being transferred”. The single transferable vote system was opted because it is a type of ranked-choice voting which is used for electing a group of candidates, for instance, a committee or a council. In this type of voting, the votes are transferred from losing candidates to other choices in the ballot. Round 1 The first round considered the count of first choices. Since none of the candidates had surplus votes so the candidates who received the least number of votes or no votes at all got eliminated and votes for other candidates got transferred for the next round. Round 2 Round 2 calculated the count after eliminating Lea Wegner and Robin Krom who received 0 votes. There was a tie between, Lea Wegner and Robin Krom while choosing candidates to eliminate. Though Lea Wegner was later chosen by breaking the tie randomly. Since none of the candidates had surplus votes they got transferred for the next round. Round 3 Round 3 calculated the count after eliminating Robin Krom and transferring votes. Since none of the candidates had surplus votes they got transferred for the next round. Round 4 Round 4 calculated the count after eliminating Nate Barbettini and transferring votes. There was a tie between the candidates Peter Mbanugo, Robert McLaws, Virgile Bello, Nate Barbettini, and Marc Bruins while choosing candidates to eliminate. In this round candidate, Nate Barbettini was chosen by breaking the tie randomly. Since none of the candidates had surplus votes they got transferred for the next round. Round 5 The fifth round considered the count after eliminating Marc Bruins and transferring votes. There was a tie between the candidates, Peter Mbanugo, Robert McLaws, Virgile Bello, and Marc Bruins while choosing the candidates to eliminate. Out of which, Marc Bruins was chosen by breaking the tie randomly. Since none of the candidates had surplus votes they got transferred for the next round. Collectively there were 41 such rounds where each round was an elimination round and then finally the winners were declared. To know more about this news, check out Opavote’s blog post. Fedora 31 will now come with Mono 5 to offer open-source .NET support Inspecting APIs in ASP.NET Core [Tutorial] .NET Core 3 Preview 2 is here!
Read more
  • 0
  • 0
  • 10370

article-image-elixir-1-8-released-with-new-features-and-infrastructure-improvements
Prasad Ramesh
15 Jan 2019
3 min read
Save for later

Elixir 1.8 released with new features and infrastructure improvements

Prasad Ramesh
15 Jan 2019
3 min read
In a blog post yesterday, Elixir 1.8 was announced. It comes with a variety of infrastructure level improvements, faster compilation time, common patterns, and added features around introspection of the system. Elixir is a functional general-purpose programming language that runs on top of the Erlang virtual machine. Custom struct inspections with Elixir 1.8 Elixir 1.8 has a derivable implementation of the Inspect protocol. This makes it simpler to filter data from existing data structures whenever they are inspected. If there is a user struct containing security and privacy sensitive information inspecting a user via inspect(user), will include all fields. This can cause information like emails and encrypted passwords to appear in logs or error reports. Defining a custom implementation of the Inspect protocol avoided this behavior. Elixir v1.8 makes it easier by allowing users to derive the Inspect protocol. Due to this, all user structs will be printed while all remaining fields are collapsed. Passing @derive {Inspect, except: [...]} will keep all fields by default and exclude only some. Custom time zone database support Elixir v1.8 defines a Calendar.TimeZoneDatabase behaviour that allows developers to add their own time zone databases. An explicit contract for time zone behaviours are defined, as a result, Elixir can now extend the DateTime API. This allows addition of functions like DateTime.shift_zone/3. The default time zone database in Elixir is Calendar.UTCOnlyTimeZoneDatabase which can only handle UTC. In other Calendar related improvements, Date.day_of_year/1, Date.quarter_of_year/1, Date.year_of_era/1, and Date.day_of_era/1 are added. Speedy compilation and performance improvements Improvements to the compiler have been made over 2018 which makes Elixir v1.8 compile code about 5% faster. The Elixir compiler also emits more efficient code used for range checks in guards, charlists with interpolation, and when working with records via the Record module. EEx templates are also optimized and emit more compact code which also runs faster. Better instrumentation and ownership with $callers The Task module is a way to spawn light-weight processes to perform concurrent work. When a new process is spawned, Elixir annotates the parent process via the $ancestors key. Instrumentation tools can use this information to track the relationship between events occurring within multiple processes. But many times tracking only $ancestors is not sufficient. Developers are recommended to start tasks under a supervisor, as it gives more visibility and control of task termination when a node shuts down. The relationship between code and the task is tracked via the $callers key present in the process dictionary. This aligns well with the existing $ancestors key. In Elixir 1.8 when a task is spawned directly from code without a supervisor, the parent process of the code will be listed under $ancestors and $callers. This feature allows instrumentation and monitoring tools to better track and relate the events in the system. This can also be used by the Ecto Sandbox which enables developers to run concurrent test against the database. It uses transactions and an ownership mechanism in which each process explicitly gets a connection assigned to it These were the major changes, for full list of improvements and bug fixes, you can take a look at release notes. Elixir Basics – Foundational Steps toward Functional Programming Erlang turns 20: Tracing the journey from Ericsson to Whatsapp Python governance vote results are here: The steering council model is the winner
Read more
  • 0
  • 0
  • 10261

article-image-rust-survey-2018-key-findings-80-developers-prefer-linux-webassembly-growth-doubles-and-more
Bhagyashree R
28 Nov 2018
4 min read
Save for later

Rust Survey 2018 key findings: 80% developers prefer Linux, WebAssembly growth doubles, and more

Bhagyashree R
28 Nov 2018
4 min read
Yesterday, the Rust Survey team published the results of their annual Rust survey of 2018. This year’s survey was launched in 14 different languages which helped in increasing the number of responses to 5991. The survey highlights that there is a slight increase in medium to large investments in Rust, most of the users prefer Linux over Windows for development, and more. Growth in the number of Rust users Rust is seeing a steady growth in the number of Rust users. Nearly 23% of these users have been using it for 3 months or less and up to a quarter of them are using it for at least 2 years. Talking about how much time it takes to get productive in Rust, 40% of Rust users said it takes less than a month of use, and over 70% felt productive in their first year of use itself. Over 22% of the Rust users do not feel productive, out of which only about 25% are in their first month of use. Larger overall investments in Rust projects Rust projects are seeing larger overall investments and trending to larger sizes. The percentage of medium to large investments in Rust has increased from 8.9% in 2016, to 16% in 2017, to 23% this year. There is also some growth in the Rust daily usage from 17.5% last year to nearly a quarter of users this year. In total, Rust weekly total usage has risen from 60.8% to 66.4%. Difficulty level of common Rust concepts Most of the Rust users consider themselves to be intermediates in terms of expertise in Rust. The users felt that Enums and Cargo are the easiest concepts to learn, followed by Iterators, Modules, and Traits, Trait Bounds, and Unsafe. The most difficult concepts are Macros, Ownership & Borrowing, and Lifetimes. Usage Patterns of Rust tools Same as last year, users are preferring the current stable release of Rust. There is a slight increase in the number of the Nightly compiler users, which is now over 56% (up from 51.6% of last year). Users are opting Nightly for accessing 2018 edition, asm, async/await, clippy, embedded development, rocket, NLL, proc macros, and wasm. The percentage of users who see a breakage during a routine compiler update remains the same as last year (7.4%). These breakages generally required minor fixes, though some reported having moderate or major fixes to upgrade to the next stable compiler. 90% of the users voted rustup as their first choice for installing Rust. Linux distros is the second option with only 17% of Rust installs. Tools like rustfmt and rustdoc got lots of positive support, following these is the clippy tool. The IDE support tools Rust Language Server and racer also had positive support but unfortunately, of the tools surveyed, generated a few more dislike votes and comments. The bindgen tool has relatively small userbase. Preferred development platforms of Rust users While there is some increase in Windows usage from 31% last year to 34% this year, Linux platform continues to be popular among Rust developers with 80% of users opting it. While there is not much change from the last year for other target platforms, WebAssembly is an exception. It has shown nearly doubled up growth from last year’s 13% to this year’s 24%. In editors, VSCode has bested Vim, the front-runner in editors for two years, which grew from 33.8% of Rust developers to 44.4% this year. Increase in commercial use of Rust Rust’s part-time usage at the workplace has increased from 16.6% to 21.2%. Its full-time commercial has doubled from 4.4% to 8.9%. In total, its commercial use has grown from 21% to just over 30% of Rust users. Though there is an increase in the commercial use, over a third of Rust users aren’t sure their companies will invest in Rust. To know more in detail, read the annual Rust Survey 2018. Rust Beta 2018 is here 3 ways to break your Rust code into modules Red Hat announces full support for Clang/LLVM, Go, and Rust
Read more
  • 0
  • 0
  • 9874
Unlock access to the largest independent learning library in Tech for FREE!
Get unlimited access to 7500+ expert-authored eBooks and video courses covering every tech area you can think of.
Renews at €18.99/month. Cancel anytime
article-image-go-1-11-3-and-go-1-10-6-released-with-fixes-to-security-issues
Amrata Joshi
14 Dec 2018
3 min read
Save for later

Go 1.11.3 and Go 1.10.6 released with fixes to security issues

Amrata Joshi
14 Dec 2018
3 min read
Yesterday, the Go team released Go 1.11.3 and Go 1.10.6.  The Go team recommends all users to update to one of these releases. If you’re not sure which one to update to, choose Go 1.11.3. These releases have addressed the following security issues: cmd/go: Remote command execution during "go get -u" The go get -u  command downloads, updates, and builds source code and is not supposed to execute arbitrary code. With the help of custom domains, it’s possible to get a Git repository cloned to a folder named .git by using a vanity import path that ends with /.git. If the Git repository root contains a HEAD file, an object directory, a config file, a refsdirectory, then go get -u can be used for considering the parent directory as a repository root, and running Git commands on it. This will help in using the config file in the original Git repository root for its configuration. In case, the config file contains malicious commands, they will execute on the system running go get -u. cmd/go: Directory traversal in "go get" via curly braces in import paths The go get command downloads and builds source code. It is strictly not supposed to allow arbitrary filesystem writes. The go get command becomes vulnerable to remote code execution when it is executed with -u flag or with the import path of a malicious Go package, which contains curly braces (both { and } characters). It is only vulnerable in GOPATH mode and not in module mode. The attacker can create an arbitrary filesystem write, which can further lead to code execution. crypto/x509: CPU denial of service in chain validation Package crypto/x509 parses and also validates X.509 encoded keys and certificates. It should handle certificate chains which are provided by an attacker with reasonable resource use. This package does not limit the work performed for each chain verification and might help attackers to craft pathological inputs, further leading to a CPU denial of service. The Go TLS servers that accept client certificates and the TLS clients that verify certificates get affected. The functionality regression in "go get" when executed in GOPATH mode on an import path pattern containing "..."  is not present in the GOPATH workspace. This issue will be resolved in the next releases, Go 1.11.4 and Go 1.10.7. This update has received a mixed reaction from the users. As few users think that if the Go team should have used context. WithTimeout or even TLSHandshakeTimeout for safety on the old Go. Other users have appreciated the efforts taken by the Go team. https://twitter.com/Olivier_Poitrey/status/1073362114570416128 To know more about this release, check out the official announcement. The Golang team has started working on Go 2 proposals TypeScript 3.2 released with configuration inheritance and more Haskell is moving to GitLab due to issues with Phabricator
Read more
  • 0
  • 0
  • 9620

article-image-wolfram-engine-is-now-free-for-developers
Vincy Davis
22 May 2019
3 min read
Save for later

Wolfram Engine is now free for developers

Vincy Davis
22 May 2019
3 min read
Yesterday in a blogpost, Stephen Wolfram posted about launching a free Wolfram Engine for developers. The Wolfram Engine runs on any standard platform like Linux, Mac, Windows, RasPi, and many more. It can be used directly with a script, or from a command line. The Wolfram Engine also has access to the whole Wolfram Knowledgebase by a free basic subscription to the Wolfram Cloud. “The Wolfram Engine is the heart of all our products.”, says  Wolfram. The Wolfram Engine implements the full Wolfram Language as a software component and can immediately be plugged into any standard software engineering stack. The Wolfram language is a powerful system used for interactive computing as well as for doing R&D, education and data science. It is also being increasingly used as a key component in building production software systems. The Wolfram language has 5000+ functions, including visualization, machine learning, numerics, image computation, and many more. It has lots of  real-world knowledge too, particularly in geo, medical, cultural, engineering, scientific, etc. The Wolfram language has been increasingly used inside large-scale software projects. Wolfram added, “Sometimes the whole project is built in Wolfram Language. Sometimes Wolfram Language is inserted to add some critical computational intelligence, perhaps even just in a corner of the project.” The free Wolfram Engine for developers will help make the Wolfram language available to any software developer. It will also help build systems that can take full advantage of its computational intelligence. Wolfram concludes the blogpost stating, “We’ve worked hard to make the Free Wolfram Engine for Developers as easy to use and deploy as possible.” Many developers have welcomed the free availability of Wolfram Engine. https://twitter.com/bc238dev/status/1130868201129107456 A user on Hacker News states, “I'm excited about this change. I wish it had happened sooner so it could have had more of an impact. It certainly put Wolfram Engine back on my radar.” Another user is planning to take advantage of this situation by “using Mathematica (and its GUI) on a Raspberry Pi to explore and figure out how to do what you want to do, but then actually run it in Wolfram Engine on a more powerful computer.” To know more details about the news, head over to Stephen Wolfram blog. Read More Software developer tops the 100 Best Jobs of 2019 list by U.S. News and World Report Key trends in software development in 2019: cloud native and the shrinking stack 18 people in tech every programmer and software engineer needs to follow in 2019
Read more
  • 0
  • 0
  • 9226

article-image-pharo-7-0-released-with-64-bit-support-a-new-build-process-and-more
Prasad Ramesh
23 Jan 2019
2 min read
Save for later

Pharo 7.0 released with 64-bit support, a new build process and more

Prasad Ramesh
23 Jan 2019
2 min read
The release of Pharo 7.0 was announced in a blog post yesterday. The seventh major release of the object-oriented programming language, Pharo 7.0 is the most important release yet. We look at the major features in Pharo 7.0. Pharo 7.0 comes in 64-bit versions for Linux and OSX. The performance and stability have improved. The 64-bit versions are stable for Linux and OSX. For Windows, the 64-bit version is still in the preview stage. Pharo 7.0 includes the new version of the PharoLauncher. It is a very useful tool to manage distributions you are working with. The new Pharo build comes with a completely new build process that supports its full bootstrap from sources. This new build process will enable the production to some images. The git client for Pharo, Iceberg has also been significantly improved. Iceberg is now the default CMS. Calypso replaces Nautilus as the new system Pharo browser in Pharo 7.0. Calypso brings improved remote working and enhanced browsing capabilities. IoT is now an important part of Pharo. Installing PharoThings provides an impressive amount of tools to develop applications in small devices. The unified foreign function interface (UnifiedFFI) is improved significantly for compatibility with 64-bit Windows. UnifiedFFI is used for interfacing with the outside world in Pharo. The Pharo blog post says: "Pharo 70’s new infrastructure and process set the stage for a new generation of version. The visibility of GitHub combined with the powerful tools that have been validated with more than one year of beta testing is massively pay off.” About 2142 issues have been closed in this release. There were more than 75 people contributing to the success of Pharo 7.0’s main image. These were the highlights of the new features in Pharo, for more details, you can view the release notes. Future of ESLint support in TypeScript Rust 1.32 released with a print debugger and other changes Elixir 1.8 released with new features and infrastructure improvements
Read more
  • 0
  • 0
  • 8864

article-image-developer-community-mourns-the-loss-of-joe-armstrong-co-creator-of-erlang
Sugandha Lahoti
22 Apr 2019
5 min read
Save for later

Developer community mourns the loss of Joe Armstrong, co-creator of Erlang

Sugandha Lahoti
22 Apr 2019
5 min read
Dr. Joe Armstrong, one of the creators of Erlang passed away over the weekend at the age of 68. Dr. Armstrong’s wife specified that he died from an infection of the lungs which occurred due to a quite recent diagnosis of pulmonary fibrosis. His lungs were donated to lung research. Francesco Cesarini, founder of Erlang solutions tweeted about Joe’s demise. https://twitter.com/FrancescoC/status/1119596234166218754 Robert Virding, co-creator of Erlang also payed his regards. https://twitter.com/rvirding/status/1119610591885307904 The developer community has also mourned the loss of Joe Armstrong with a large number of developers taking to various social media platforms to offer their condolences to Dr. Armstrong's family and paying their respects for him. Dr. Armstrong’s work with concurrency programming Dr. Armstrong was best known for helping lay foundations in the '70s and '80s to the most widely spread concurrency models as we know them today. In concurrent programming, multiple events, code snippets or programs are perceived to be executing at the same time. Unlike imperative languages, which uses routines or object-oriented languages, which use objects. Concurrency oriented languages use processes, actors, and agents as the main building blocks. Dr. Armstrong helped propel concurrency programming at a time when there was no IoT, web, massive multi-user online games, video streaming, and automated trading or online transactions. The Erlang programming language Erlang was co-created by Joe Armstrong alongside Robert Virding and Mike Williams in the 1980s at the Ericsson Computer Science Labs. While working there, Dr. Armstrong and his colleagues were looking for an approach to developing fault-tolerant and scalable systems. This resulted in the Erlang-style concurrency. He later received a Ph. D. in computer science from the Royal Institute of Technology in Stockholm, Sweden in 2003. He is also the author of a number of key books on the topic of Erlang including Concurrent Programming in Erlang, Programming Erlang: Software for a Concurrent World, and Coders At Work. Erlang was originally built for use only at Ericsson, as a proprietary language, to improve telephony applications. It was designed to be a fault-tolerant, distributed, real-time system that offered pattern matching and functional programming in one handy package. It was then open-sourced to the public in 1998. Since then, it has been responsible for business, big and small, to create reliable systems. Since then, Erlang has been one of the most popular open source languages with compelling features like concurrent processes, memory management, scheduling, distribution, networking, etc. WhatsApp, the most popular messaging platform’s server is almost completely implemented in Erlang. In 2018, Erlang celebrated 20 years of its open sourcing tracing its journey from Ericcson to Whatsapp. Erlang also inspired Elixir, a general-purpose programming language that runs on the Erlang virtual machine. Elixir is built on top of Erlang and shares the same abstractions for building distributed, fault-tolerant applications. Using Erlang modules in Elixir has helped in the creation of Nerves, which helps in building embedded software, and the web framework Phoenix. Remembering Dr. Joe Armstrong Many developers have shared their sentiments on Dr. Armstrong’s demise, with most of them describing him as a kind and compassionate developer who was more interested in teaching than his ego. Thomas Gebert, a software developer shared an email thread where he asked Joe Armstrong about concurrency. He states, “Dr. Armstrong’s enthusiasm about Erlang, distributed programming, and pretty much everything else about computers was really a good springboard for self-education.” Even though Thomas asked some serious noobie questions about concurrency, Dr. Armstrong responded back with an incredibly long, well-written email explaining a lot of the minutia of how Erlang avoids a lot of pitfalls and generic concurrency theory. Thomas adds, “He was really good about explaining things in a way simple-enough for me to understand, without coming off as patronizing or rude.” A lot of people also took to Twitter to share their experiences working with Dr. Armstrong. https://twitter.com/zxq9_notits/status/1119602063506206725 https://twitter.com/glv/status/1119706037689491456 https://twitter.com/ktosopl/status/1119612076190601217 https://twitter.com/jboner/status/1119651034933100544 “He and I discussed distributed storage. Well detailed response from him that sent me reading for days. I aspire to be like him.” reads a comment on Hacker News. Such was his popularity. Here are some of his memorable quotes on a varied set of topics of interest to him. “All significant energy gains in the last 50 odd years are the result of new hardware NOT software.” https://twitter.com/joeerl/status/1115988725111169025 Prediction: One day computers might become useful https://twitter.com/joeerl/status/1114558139217711104 “One on the disadvantages of having a PhD in computer science is that I get asked really difficult questions. Like - "In gmail on my iPhone I press archive - can I get my mail back?" and "Why have they changed the interface?" Why no easy questions like what's a monad?” https://twitter.com/joeerl/status/1113847695612022785 The Erlang Ecosystem Foundation launched at the Code BEAM SF conference Elixir 1.7, the programming language for Erlang virtual machine, releases Introducing Mint, a new HTTP client for Elixir
Read more
  • 0
  • 0
  • 8464
article-image-ripgrep-0-10-0-released-with-pcre2-and-multi-line-search-support
Natasha Mathur
10 Sep 2018
2 min read
Save for later

Ripgrep 0.10.0 released with PCRE2 and multi-line search support

Natasha Mathur
10 Sep 2018
2 min read
The Ripgrep team released a minor version Ripgrep 0.10.0 last week. It explores features such as PCRE2 support, multi-line search and a JSON output format among other minor updates. Ripgrep is a command line search tool that recursively searches your current directory for a regex pattern while respecting your gitignore rules. It offers first class support on Windows, macOS, and Linux. Major Updates The minimum version which was required to compile Rust has been changed to track the latest stable version of Rust. The new minor versions will be using the current stable version of the Rust compile as its minimum supported version. Ripgrep 0.10.0 has now got libripgrep which helps with fast searching over arbitrary streams of data.  A new feature offering multi-line support has been added, which allows matching over multiple lines. There’s another new feature PCRE2 and JSON Lines format. The PCRE2 feature provides support for look-around and backreferences ( match the same text as previously matched by a capturing group ) and JSON lines format makes use of --json flag which helps print results in that format. Other changes A --one-file-system flag has been added to skip directories on different file systems. Two new minor features namely --sort and --sortr flag have been added for more sorting. --crlf flag is added in Ripgrep 0.10.0 to permit $ to work with carriage returns on Windows. A --null-data flag has been added to ripgrep 0.10.0 that makes ripgrep use NUL as a line terminator. --line-buffered and --block-buffered have been added for forcing a buffer strategy. A --pre-glob feature has been added for filtering files through the --pre flag. Bug Fixes A bug in ignore crate, where first path was treated as a symlink, has been fixed in ripgrep 0.10.0. Compile time and runtime CPU features have been added to --version output. ripgrep is more robust now when it comes to memory maps failing. For more information, check out the official ripgrep 0.10.0 release notes. Arduino now has a command line interface (CLI) Command Line Tools for DevOps Command-Line Tools
Read more
  • 0
  • 0
  • 7610

article-image-npm-install-funding-experiment-to-sustain-open-source-projects-with-ads-on-the-cli-terminal-faces-community-backlash
Fatema Patrawala
28 Aug 2019
5 min read
Save for later

‘Npm install funding’, an experiment to sustain open-source projects with ads on the CLI terminal faces community backlash

Fatema Patrawala
28 Aug 2019
5 min read
Last week, one of the npm open source authors and maintainers, software developer Feross announced an “npm install funding” experiment. Essentially, this enabled sponsors to “advertise on the Npm package install terminals”. In turn, the money raised from these ads would ensure npm maintainers are paid for their important contributions to the project, ensuring that packages remain up to date, reliable, and secure. Feross wrote on the GitHub page, “I think that the current model of sustaining open source is not working and we need more experimentation. This is one such experiment.” He further wrote that if this experiment works, then they can help make all open source healthier, too. For complex reasons, companies are generally hesitant or unwilling to fund OSS directly. When it does happen, it's never enough and it never reaches packages which have transitive dependencies (i.e. packages that no one installs explicitly and therefore no one knows exists). Feross believes that npm essentially is a public good as it is consumed by huge numbers of users, but no one pays for it. And he viewed a funding model that usually works for public goods like this are ads. But how does it work? Read Also: Surprise NPM layoffs raise questions about the company culture How was the project ‘Npm install funding’ planned to work? Feross’s idea was that when developers install the library via the npm JavaScript package manager, they get a giant banner advertisement in their terminal as shown below: Source: GitHub thread Feross asked companies to promote ads on the installation terminals of JavaScript packages that have expressed interest in participating in the funding experiment. The idea behind funding is that companies buy ad space in people's terminals, and the funding project then shares its profits with open-source projects who signed-up to show the ads, as per ZDNet.  Linode and LogRocket agreed to participate in this funding experiment. The experiment did run on a few open source projects that Feross maintains: One of them was StandardJS 14. Feross raised $2000 as Npm install funds Feross had so far earned $2,000 for his time to release Standard 14 which took him five days. If he was able to raise additional funds, his next focus was the TypeScript support in StandardJS (one of the most common feature requests) and modernizing the various text editor plugins (many of which are currently unmaintained). Community did not support promoting ads on CLI and finally it came to a halt As per ZDNet reports, the developer community has been debating on this idea. There are arguments from both sides, one who see it is a good idea to finance their projects. And there are others who are completely against seeing ads on their terminals. Most of the negative comments for this new funding scheme came from developers who are dissatisfied that these post-install ad banners will now be making their way into logs, making app debugging unnecessarily complicated. Robert Hafner, a developer from California commented on a GitHub thread, "I don't want to have to view advertisements in my CI logs, and I hate what this would mean if other packages started doing this. Some JS packages have dozens, hundreds, or even more dependencies- can you imagine what it would look like if every package did this?" Some of the developers took a step further and created the world’s first ad blocker for a command line interface. https://twitter.com/dawnerd/status/1165330723923849216 They also put pressure on Linode and LogRocket to remove showing up the ads, and Linode eventually decide to drop out. https://twitter.com/linode/status/1165421512633016322 Additionally on Hacker News, users are confused about this initiative. They are curious to know about how this will actually work out? One of them commented, “The sponsorship pays directly for maintainer time. That is, writing new features, fixing bugs, answering user questions, and improving documentation. As far as I can tell, this project is literally just a 200 line configuration file for a linter. Not even editor integrations for the linter, just a configuration file for it. Is it truly something that requires funding to 'add new features'? How much time does it take out of your day to add a new line of JSON to a configuration file, or is the sponsorship there to pay for all the bikeshedding that's probably happening in the issues and comments on the project? What sort of bugs are there in a linter configuration file? I'm really confused by all of this. > The funds raised so far ($2,000) have paid for Feross's time to release Standard 14 which has taken around five days. Five days to do what? Five full 8 hour days? Does it take 5 days to cut a GitHub release and push it to NPM? What about the other contributors that give up their time for free, are their contributions worthless? Rather than feeling like a way to support FOSS developers or FOSS projects, it feels like a rather backhanded attempt at monetization by the maintainer where Standard was picked out because it was his most popular project, and therefore would return the greatest advertising revenue. Do JavaScript developers, or people that use this project, have a more nuanced opinion than me? I do zero web development, is this type of stuff normal?” After continuous backlash from developer community, the project has come to a halt and there are no messages promoted on the CLI. It is clear that while open-source funding still remains a major pain point for developers and maintainers, people don't really like ads in their CLI terminals. What's new in tech this week! “Rust is the future of systems programming, C is the new Assembly”: Intel principal engineer, Josh Triplett Kotlin 1.3.50 released with ‘duration and time Measurement’ API preview, Dukat for npm dependencies, and much more! React.js: why you should learn the front end JavaScript library and how to get started
Read more
  • 0
  • 0
  • 7238

article-image-parasail-8-0-released-with-a-new-debugger-compiler-and-language-principle-designs-among-others
Amrata Joshi
11 Feb 2019
4 min read
Save for later

ParaSail 8.0 released with a new debugger, compiler, and language principle designs among others

Amrata Joshi
11 Feb 2019
4 min read
Last week, the team at ParaSail, released a new version of the parallel programming language, ParaSail 8.0 (ParaSail stands for Parallel Specification and Implementation Language). This programming language is designed for supporting the development of inherently safe and parallel applications that can be mapped to multicore, heterogeneous, or distributed architectures. It provides support for both implicit and explicit parallelism. All the ParaSail expressions are defined to have parallel evaluation semantics. What’s new in ParaSail 8.0 Debugger This release comes with an interactive debugger that is automatically invoked when the interpreter encounters a precondition, assertion, or postcondition that fails at run-time.  This release comes with fully analyzed pre- and postconditions that are checked at run-time. ParaSail LLVM-based Compiler This release comes with a translator that translates PSVM (ParaSail virtual machine) instructions to LLVM (Low-Level Virtual Machine) instructions, and from there to object code. Language design principles According to the new design principles, the language should be easy to read. The readability should be emphasized over symbols and should be similar to existing languages, mathematics, or logic. As the programs are usually scanned backward, so ending indicators should be as informative as starting indicators for composite constructs. For example, “end loop” or “end class Stack” rather than simply “end” or “}”. Parallelism should be built into the language so that resulting programs can easily take advantage of as many cores as are available on the host computer. Features that are error-prone or that can complicate the testing or proof process should be eliminated. Language-defined types and user-defined types should use the same syntax and have the same capabilities. All the modules should be generic templates or equivalent. The language should be safe and the compiler should detect all potential race conditions as well as all potential runtime errors. Enhanced ParaSail syntax In this release, the back-quote character followed by a parenthesized expression may now appear within a string literal. Also, the value of the expression is interpolated into the middle of the string, in place of the back-quoted expression. Reserved words A list of words is now reserved in ParaSail. Few words from this list are, abs, abstract, all, and, block, case, class, concurrent, const, continue, each, else, elsif, end, exit, extends. Object reference Now a reference to an existing object can be declared using the following syntax: object_reference_declaration ::= ’ref’ [ var_or_const ] identifier [’:’ type_specifier ] ’=>’ object_name ’;’ Deprecations ParaSail has removed a few of the features for ensuring safe parallelism: The global variables have been removed so that operations may only access variables passed as parameters. The parameter aliasing has been eliminated so that two parameters passed to the same operation don’t refer to the same object if one of the parameters is updatable within the operation. Pointers have been removed so that optional and expandable objects and generalized indexing can provide an approach that allows safe parallelization. Run-time exception handling has been eliminated so that it is possible for strong compile-time checking of preconditions and establish support for parallel event-handling. The global garbage-collected heap has been removed so that  automatic storage management is provided. Explicit threads, lock/unlock, or signal/wait has been eliminated so that parallel activities are identified automatically by the compiler. Many users are not much happy with this news. Some  are unhappy with the CSS and are asking the team to fix it. One of the comments on HackerNews reads, “Please fix the CSS: I have to scroll horizontally every single line. I stopped at the first one. Tested with Firefox and Chrome on Android. Firefox reader mode doesn't work on that site.” Another user commented, “I was able to read it on my Android device in Chrome by using landscape mode. Until I scrolled down a little. Then a huge static navigation popup appeared taking up 40% of the screen!” Few others think that Fortran is better than ParaSail as it lets developers to name the loops. Some others are excited about pre/post conditions. One of the users commented, “Having built in pre/post conditions is pretty nice.” Read more about this news on ParaSail’s official website. Racket 7.2, a descendent of Scheme and Lisp, is now out! Typescript 3.3 is finally released! Announcing Julia v1.1 with better exception handling and other improvements
Read more
  • 0
  • 0
  • 7114
article-image-introducing-wapm-a-package-manager-for-webassembly
Bhagyashree R
24 Apr 2019
2 min read
Save for later

Introducing WAPM, a Package Manager for WebAssembly

Bhagyashree R
24 Apr 2019
2 min read
Yesterday, Syrus Akbary, the Founder and CEO of Wasmer, announced the release of WebAssembly Package Manager (WAPM). This package manager is introduced to make it easier for developers to use WebAssembly anywhere. Why WAPM is being introduced? With this package manager, the Wasmer team aims to improve the developer ergonomics of WebAssembly. Explaining the advantages of WAPM, Akbary said, “WebAssembly is an abstraction on top of chipset instructions, this enables wasm modules to run very easily on any machine. If we move this abstraction up we can unlock the potential of having universal binaries that can run anywhere, even on platforms/chipsets not supported at the moment of releasing the binary.” We already have Node.js Package Manager (NPM) that hosts WebAssembly modules. However, the team believes that WebAssembly on the server-side is a different use case and hence deserves a package manager specifically designed for it. What are its advantages? Following are the advantages that WAPM comes brings in: Allows developers to easily publish, download, and use WebAssembly modules. Allows developers to easily define commands on top of Wasm. Enables developers to create universal libraries in WebAssembly that can be used from all languages including Python, PHP, JavaScript, Rust, C, and C++. Enables support for different ABIs (Application Binary Interface) such as WASI, Emscripten, or even new ones in the future. This release comes with a ‘wapm’ command-line application and a website and package registry: wapm.io. Here’s a video demonstrating how WAPM works: https://www.youtube.com/watch?v=qDRcHIBFu0c After seeing the governance issues with NPM, many developers are skeptical about another private community package manager “I've grown uncomfortable with NPM being operated by NPM Inc instead of The Node.js Foundation, but it's a hard thing to change once it's established. We should hesitate to support the establishment of another community package manager by a for-profit company,” a Redditor said. To know more in detail, check out the official announcement. Mozilla introduces Pyodide, a Python data science stack compiled to WebAssembly Fastly open sources Lucet, a native WebAssembly compiler and runtime How you can replace a hot path in JavaScript with WebAssembly
Read more
  • 0
  • 0
  • 6648

article-image-introducing-cue-an-open-source-data-constraint-language-that-merges-types-and-values-into-a-single-concept
Bhagyashree R
03 Sep 2019
4 min read
Save for later

Introducing CUE, an open-source data constraint language that merges types and values into a single concept

Bhagyashree R
03 Sep 2019
4 min read
Inspired by Google’s General Configuration Language (GCL), a team of developers has now come up with a new language called CUE. It is an open-source data validation language, which aims to simplify tasks that involve defining and using data. Its applications include data validation, data templating, configuration, querying, code generation and even scripting. There are two core aspects of CUE that set it apart from other programming or configuration languages. One, it considers types as values and second, these values are ordered into a lattice, a partially ordered set. Explaining the concept behind CUE the developers write, “CUE merges the notion of schema and data. The same CUE definition can simultaneously be used for validating data and act as a template to reduce boilerplate. Schema definition is enriched with fine-grained value definitions and default values. At the same time, data can be simplified by removing values implied by such detailed definitions. The merging of these two concepts enables many tasks to be handled in a principled way.” These two properties account for the various advantages CUE provides: Advantages of using CUE Improved typing capabilities Most configuration languages today focus mainly on reducing boilerplate and provide minimal typing support. CUE offers “expressive yet intuitive and compact” typing capabilities by unifying types and values. Enhanced readability It enhances readability by allowing the application of a single definition in one file to values in many other files. So, developers need not open various files to verify validity. Data validation You get a straightforward way to define and verify schema in the form of the ‘cue’ command-line tool. You can also use CUE constraints to verify document-oriented databases such as Mongo. Read also: MongoDB announces new cloud features, beta version of MongoDB Atlas Data Lake and MongoDB Atlas Full-Text Search and more! Easily validate backward compatibility With CUE, you can easily verify whether a newer version of the schema is backward compatible with an older one. CUE considers an API backward compatible if it subsumes the older one or if the old one is an instance of the new one. Allows combining constraints from different sources CUE is commutative, which means you can combine constraints from various sources such as base template, code, client policies, and that too in any order. Allows normalization of data definitions Combining constraints from many resources can also result in a lot of redundancy. CUE’s logical inference engine addresses this by automatically reducing constraints. Its API allows computing and selecting between different normal forms to optimize for a certain representation. Code generation and extraction Currently, CUE can extract definitions from Go code and Protobuf definitions. It facilitates the use of existing sources or smoother transition to CUE by allowing the annotation of existing sources with CUE expressions. Querying data CUE constraints can be used to find patterns in data. You can perform more elaborate querying by using a ‘find’ or ‘query’ subcommand. You can also query data programmatically using the CUE API. On a Hacker News discussion about CUE, many developers compared it with Jsonnet, which a data templating language. A user wrote, “It looks like an alternative to Jsonnet which has schema validation & strict types. IMO, Jsonnet syntax is much simpler, it already has integration with IDEs such as VSCode and Intellij and it has enough traction already. Cue seems like an e2e solution so it's not only an alternative to Jsonnet, it also removes the need of JSON Schema, OpenAPI, etc. so given that it's a 5 months old project, still has too much time to evolve and mature.” Another user added, “CUE improves in Jsonnet in primarily two areas, I think: Making composition better (it's order-independent and therefore consistent), and adding schemas. Both Jsonnet and CUE have their origin in GCL internally at Google. Jsonnet is basically GCL, as I understand it. But CUE is a whole new thing.” Others also praised its features. “When you consider the use of this language within a distributed system it's pretty freaking brilliant,” a user commented. Another user added, “I feel like that validation feature could theoretically save a lot of people that occasional 1 hour of their time that was wasted because of a typo in a config file leading to a cryptic error message.” Read more about CUE and its concepts in detail, on its official website. Other news in Programming languages ‘Npm install funding’, an experiment to sustain open-source projects with ads on the CLI terminal faces community backlash “Rust is the future of systems programming, C is the new Assembly”: Intel principal engineer, Josh Triplett Kotlin 1.3.50 released with ‘duration and time Measurement’ API preview, Dukat for npm dependencies, and much more!
Read more
  • 0
  • 0
  • 6529
Modal Close icon
Modal Close icon