Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon

Tech News - Languages

202 Articles
article-image-dart-2-2-is-out-with-support-for-set-literals-and-more
Savia Lobo
27 Feb 2019
2 min read
Save for later

Dart 2.2 is out with support for set literals and more!

Savia Lobo
27 Feb 2019
2 min read
Michael Thomsen, the Project Manager for Dart announced the stable release of the general purpose programming language, Dart 2.2. This version, which is an incremental update to v2, offers improved performance of ahead-of-time (AOT) compiled native code and a new set literal language feature. Improvements in Dart 2.2 Improved AOT performance Developers have worked on improving the AOT performance by 11–16% on microbenchmarks (at the cost of a ~1% increase in code size). Prior to this optimization, developers had to make several lookups to an object pool to determine the destination address. However, the optimized AOT code is now able to call the destination directly using a PC-relative call. Extended Literals to support sets Dart supported the literal syntax only for Lists and Maps, which caused difficulties in initializing Sets as it had to be initialized via a list as follows: Set<String> currencies = Set.of(['EUR', 'USD', 'JPY']); This code proved to be inefficient due to the lack of literal support and also made currencies a compile-time constant. With Dart 2.2’s extension of literals to support sets, users can initialize a set and make it const using a convenient new syntax: const Set<String> currencies = {'EUR', 'USD', 'JPY'}; Updated Dart language Specification Dart 2.2 includes the up-to-date ‘Dart language specification’ with the spec source moved to a new language repository. Developers have also added continuous integration to ensure a rolling draft specification is generated in PDF format as and when the specification for future versions of the Dart language evolves. Both the 2.2 version and rolling Dart 2.x specifications are available on the Dart specification page. To know more about this announcement in detail, visit Michael Thomsen’s blog on Medium. Google Dart 2.1 released with improved performance and usability Google’s Dart hits version 2.0 with major changes for developers Is Dart programming dead already?  
Read more
  • 0
  • 0
  • 4832

article-image-python-3-8-alpha-2-is-now-available-for-testing
Natasha Mathur
27 Feb 2019
2 min read
Save for later

Python 3.8 alpha 2 is now available for testing

Natasha Mathur
27 Feb 2019
2 min read
After releasing Python 3.8.0 alpha 1 earlier this month, Python team released the second alpha version of the four planned alpha releases of Python 3.8, called Python 3.8.0a2, last week. Alpha releases make it easier for the developers to test the current state of new features, bug fixes, and the release process. Python team states that many new features for Python 3.8 are still being planned and written. Here is a list of some of the major new features and changes so far, however, these features are currently raw and not meant for production use: PEP 572 i.e. Assignment expressions have been accepted. Now, users can assign to variables within an expression with the help of the notation NAME := expr. A new exception, TargetScopeError has also been added with one change to the evaluation order. Typed_ast, a fork of the ast module (in C) used by mypy, pytype, and (IIRC) has been merged back to CPython. Typed_ast helps preserve certain comments. Multiprocessing is now allowed and users can use shared memory segments to avoid pickling costs and the need for serialization between processes. The next pre-release for Python 3.8 will be Python 3.8.0a3 and has been scheduled for 25th March 2019. For more information, check out the official Python 3.8.0a2 announcement. PyPy 7.0 released for Python 2.7, 3.5, and 3.6 alpha 5 blog posts that could make you a better Python programmer Python Software foundation and JetBrains’ Python Developers Survey 2018
Read more
  • 0
  • 0
  • 2839

article-image-go-1-12-released-with-support-for-tls-1-3-module-support-among-other-updates
Sugandha Lahoti
26 Feb 2019
3 min read
Save for later

Go 1.12 released with support for TLS 1.3, module support among other updates

Sugandha Lahoti
26 Feb 2019
3 min read
Go 1.12 was released yesterday with opt-in support for TLS 1.3, improved modules support, support for windows/arm, and improved macOS & iOS forwards compatibility. The previous Go version, Go 1.11 was released in August last year. What’s new in Go 1.12? Opt-in support for TLS 1.3 Go 1.12 adds opt-in support for TLS 1.3 in the crypto/tls package. It can be enabled by adding the value tls13 = 1 to the GODEBUG environment variable. It will be enabled by default in Go 1.13. All TLS 1.2 features except TLSUnique in ConnectionState and renegotiation are available in TLS 1.3 and provide equivalent or better security and performance. TLS 1.3 cipher suites are not configurable. Since TLS 1.3 0-RTT mode involves clients keeping state regarding which servers support 0-RTT, a Go 1.12 server cannot be part of a load-balancing pool where some other servers do support 0-RTT. In TLS 1.3, the client is the last one to speak in the handshake, so if it causes an error to occur on the server, it will be returned on the client by the first Read, not by Handshake. Improved Module support The go command now supports module-aware operations outside of a module directory, provided that those operations do not need to resolve import paths relative to the current directory or explicitly edit the go.mod file. Commands such as go get, go list, and go mod download behave as if in a module with initially-empty requirements. go commands that download and extract modules are now safe to invoke concurrently. The go directive in a go.mod file now indicates the version of the language used by the files within that module. The go command will now try to use the modules mentioned in the main module's replace directives before consulting the module cache and the usual network sources. This happens when an import cannot be resolved using the active modules. Other changes Go's new windows/arm port supports running Go on Windows 10 IoT Core on 32-bit ARM chips. It also supports AIX 7.2 and later on POWER8 architectures (aix/ppc64). For macOS, Go 1.13 will require macOS 10.11 El Capitan or later. The go vet command has been rewritten so go tool vet is no longer supported. The Go tour is no longer included in the main binary distribution. The build cache is now required as a step toward eliminating $GOPATH/pkg Go 1.12 will translate the C type EGLDisplay to the Go type uintptr. The compiler's live variable analysis has improved. Wrappers generated by the compiler to implement method expressions are no longer reported by runtime.CallersFrames and runtime.Stack. The compiler toolchain now uses different conventions to call Go functions and assembly functions. Go 1.12 is the last release that will include the godoc webserver; in Go 1.13 it will be available via go get. The trace tool now supports plotting mutator utilization curves, including cross-references to the execution trace. Go 1.12 significantly improves the performance of sweeping when a large fraction of the heap remains live. These are just a select few updates. For full details about the changes in Go 1.12, you may go through the Go 1.12 release notes. Go 1.11 support announced for Google Cloud Functions! Go 1.11.3 and Go 1.10.6 released with fixes to security issues Google Cloud announces new Go 1.11 runtime for App Engine
Read more
  • 0
  • 0
  • 4375
Banner background image

article-image-iso-c-committee-announces-that-c20-design-is-now-feature-complete
Bhagyashree R
25 Feb 2019
2 min read
Save for later

ISO C++ Committee announces that C++20 design is now feature complete

Bhagyashree R
25 Feb 2019
2 min read
Last week, as per the schedule, the ISO C++ Committee met in Kona, Hawaii to finalize the feature set for the next International Standard (IS), C++ 20. The committee has announced that C++20 is now feature complete and they are planning to finish the C++20 specification at the upcoming meeting, which is scheduled to happen in July 2019. Once the specification is complete they are planning to send the Committee Draft for review. Some of the features this draft include Modules With the introduction of modules, developers will not require to separate their files into header and source parts. The committee has now fixed internal linkage escaping modules. Coroutines The committee has gone through the coroutines proposals and has decided to go ahead with the specification. According to the specification of this feature, three keywords will be added: co_await, co_yield, and co_return. Contracts Contracts are made up of preconditions, postconditions, and assertions. These act as a basic mitigation measure when a program goes wrong because of some mismatch of expectations between parts of the programs. The committee is focused on refining the feature and renamed expects/ensures to pre/post. Concepts The concepts library include the definitions of fundamental library concepts, which are used for compile-time validation of template arguments and perform function dispatch on properties of types. Ranges The ranges library comes with components for dealing with ranges of elements including a variety of view adapters. To read the entire announcement, check out this Reddit thread. Code completion suggestions via IntelliCode comes to C++ in Visual Studio 2019 How to build Template Metaprogramming (TMP) using C++[Tutorial] Mio, a header-only C++11 memory mapping library, released!
Read more
  • 0
  • 0
  • 7218

article-image-ipython-7-3-releases-with-conda-and-pip-magics-and-python-3-8-compatibility
Bhagyashree R
22 Feb 2019
2 min read
Save for later

IPython 7.3 releases with %conda and %pip magics and Python 3.8 compatibility

Bhagyashree R
22 Feb 2019
2 min read
This Monday, Matthias Bussonnier, a core developer of the IPython and Jupyter Project team, announced the release of IPython 7.3. Along with some major bug fixes, this release comes with the %conda and %pip magics and compatibility with Python 3.8. The %conda and %pip magics IPython offers magic functions as an added enhancement on top of the Python syntax that is intended to solve common problems like data analysis using Python. The biggest update the team has introduced to this release is the implementation of the %conda and %pip magics. These magics will automatically install packages into the kernel that is currently running in an IPython or Jupyter notebook session. The %pip magic was already available, but it was limited to printing a warning and now, it will actually forward commands to pip. Users will still need to restart the interpreter or kernel for the newly installed packages to be taken into account. Though this update is great, users are recommended to use the conda/pip commands as their preferred way for installing. Bug fixes This release is compatible with Python 3.8, which comes with the addition of Assignment Expressions, better thread safety, and more. To opt out of shell variable expansion, the `@magic.no_var_expand` decorator is added to the execution magics. The behavior of the %reset magic has been changed by initializing the posix aliases `clear`, `less`, `more`, and `man` during a reset. IPython command line now will allow running *.ipynb files. To read more about the updates in IPython 7.3, check out its official announcement. IPython 7.2.0 is out! IPython 7.0 releases with AsyncIO Integration and new Async libraries PyPy 7.0 released for Python 2.7, 3.5, and 3.6 alpha
Read more
  • 0
  • 0
  • 3863

article-image-go-1-12-release-candidate-1-is-here-with-improved-runtime-assembler-ports-and-more
Amrata Joshi
13 Feb 2019
3 min read
Save for later

Go 1.12 Release Candidate 1 is here with improved runtime, assembler, ports and more

Amrata Joshi
13 Feb 2019
3 min read
Yesterday, the team at Gophers released Go 1.12rc1, a release candidate version of Go 1.12. This release comes with improved runtime, updated libraries, ports and more. What’s new in Go 1.12rc1 Trace In Go 1.12rc1, the trace tool supports plotting mutator utilization curves, including cross-references to the execution trace. These are used to analyze the impact of the garbage collector on application latency and throughput. Assembler On arm64, the platform register was renamed from R18 to R18_PLATFORM to prevent accidental use, as the OS could choose to reserve this register. Runtime This release improves the performance of sweeping when a large fraction of the heap remains live. This reduces allocation latency following a garbage collection.The Go runtime now releases memory back to the operating system and particularly in response to large allocations that can't reuse existing heap space. In this release, the runtime’s timer and deadline code is faster and scales better with higher numbers of CPUs. It also improves the performance of manipulating network connection deadlines. Ports With this release, the race detector is now supported on linux/arm64. Go 1.12rc1 is supported on FreeBSD 10.x. Windows The new windows/arm port supports Go on Windows 10 IoT Core on 32-bit ARM chips such as the Raspberry Pi 3. AIX This release supports AIX 7.2 and later on POWER8 architectures (aix/ppc64). Though external linking, pprof, cgo, and the race detector aren't yet supported. Darwin This one is the last release to run on macOS 10.10 Yosemite, as Go 1.13 will need macOS 10.11 El Capitan or later. libSystem is now used while making syscalls on Darwin, which ensures forward-compatibility with future versions of macOS and iOS. This switch to libSystem has triggered additional App Store checks for private API usage. Tools The go tool vet is no longer supported. With this release, the go vet command has been rewritten to serve as the base for a range of different source code analysis tools. Even the external tools that use go tool vet must be changed to use go vet. Using go vet instead of go tool vet will work with all supported versions of Go. Even the experimental -shadow option is no longer available with go vet. Build cache requirement The build cache is now used for eliminating $GOPATH/pkg. With Go 1.12rc1, setting the environment variable GOCACHE=off will cause go commands to fail. Binary-only packages This one is the last release that will support binary-only packages. Cgo This release translates the C type EGLDisplay to the Go type uintptr. In this release, mangled C names are no longer accepted by the packages that use Cgo. The Cgo names are used now instead. Minor changes to the library Bufio: In this release, the reader's UnreadRune and UnreadByte methods will now return an error if they are called after Peek. Bytes: This release comes with a new function, ReplaceAll that returns a copy of a byte slice with all non-overlapping instances of a value replaced by another. To know more about this news, check out the official post. Introduction to Creational Patterns using Go Programming Go Programming Control Flow Essential Tools for Go Programming
Read more
  • 0
  • 0
  • 1964
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 $19.99/month. Cancel anytime
article-image-pypy-7-0-released-for-python-2-7-3-5-and-3-6-alpha
Prasad Ramesh
12 Feb 2019
2 min read
Save for later

PyPy 7.0 released for Python 2.7, 3.5, and 3.6 alpha

Prasad Ramesh
12 Feb 2019
2 min read
Yesterday, PyPy 7.0 was announced in a blog post. It is a triple release for different Python versions. PyPy is a compliant Python interpreter which can be considered a replacement for CPython 2.7, 3.5, and 3.6. It’s faster due to the integrated tracing JIT compiler. The release supports x86 machines with common OSes, PPC64, and s390x running Linux. Since the ARM buildbots are out of service currently, binaries for ARM architecture will not be released. PyPy 7.0 includes the following interpreters. PyPy2.7 is an interpreter with support for syntax and features of Python 2.7 which will lose official support next year. PyPy3.5, supports the stable Python 3.5 PyPy3.6-alpha which is the first official PyPy release supporting 3.6 features. All of the three interpreters share a similar codebase allowing this triple release. Until packages can be distributed downstream, wheel (whl) packages are available for some common packages. GC hooks has been improved. It’s now possible to manage the GC by using a combination of gc.disable and gc.collect_step manually. The cffi module included in PyPy has been updated to version 1.12. The cppyy backend is also updated to version 1.4. For a JIT friendly experience, use the new versions to wrap your C and C++ code. PyPy 7.0 is fully compatible with the previous version. Several issues and bugs raised by the PyPy community have been addressed. PyPy3 and Windows PyPy3.5 releases are not yet up to quality to be used in production. There are open issues and the compatibility is not complete. The utf8 branch to change the internal representation of unicode to utf8 will be added in one of the future releases. Python Software foundation and JetBrains’ Python Developers Survey 2018 Python steering council election results are out for January 2019 Introducing RustPython, a Python 3 interpreter written in Rust
Read more
  • 0
  • 0
  • 2959

article-image-brian-goetz-on-java-futures-at-fosdem-2019
Prasad Ramesh
11 Feb 2019
3 min read
Save for later

Brian Goetz on Java futures at FOSDEM 2019

Prasad Ramesh
11 Feb 2019
3 min read
At FOSDEM 2019, Java language architect Brian Goetz talks about the future of Java in the next few years. Let’s take a look at the highlights of his talk. Java has been around more than 20 years and has been declared dead by critics numerous times. They have kept the language alive by staying relevant to problems and hardware. The faster release cycle allows the Java team to work on good small features. It also helps laying the groundwork for future releases. Preview features help in risk reduction by gathering feedback. There are various projects in the works that will allow Java to adapt to higher expectations of the developers, bring value types, generic specialization, and better interoperability with native code. Switch and pattern matching He goes over the new switch statements in Java 12 with an example. The new expression switch simplifies the code a lot, by allowing not just lesser typing but also makes the code less error prone. Switch expressions is a part of a larger concept called pattern matching. It combines a test, a conditional extraction and a binding into one operation. The code looks cleaner with pattern matching as it eliminates redundant boilerplate. Project Valhalla The goal of this project is to reboot the way JVM lays out data in memory. The hardware has changed drastically in the last three decades. The cost of memory fetch versus arithmetic has increased hundreds of times. Memory efficiency is lost in between this increased cost. Alternatives like stuffing data into arrays under a single header makes the code worse. This project introduces value types that ‘codes like a class, works like an int’. Project Valhalla has been running for the past 5 years and has different phases. The current prototype is called LW1 and has the VM underpinnings validated. The next prototype called LW2 out next year should be good for experimentation. Project metropolis is also in the early stages. It's about replacing the C2 compiler with the Graal compiler. The Java team is working on a lot of features across various categories such as language productivity features, fundamental VM performance features, native interop, concurrency models etc,. They are starting to be better formed now after years of work through various projects. The bi-yearly releases help test more features than before and the limited LTS releases would help the core developers to work with better focus. Project Valhalla seems promising and could possible make Java much more memory efficient. To see code demo and explanation with QnA, you can watch the talk. 7 things Java programmers need to watch for in 2019 Netflix adopts Spring Boot as its core Java framework IntelliJ IDEA 2018.3 is out with support for Java 12, accessibility improvements, GitHub pull requests, and more
Read more
  • 0
  • 0
  • 3116

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
  • 6175

article-image-python-software-foundation-and-jetbrains-python-developers-survey-2018
Prasad Ramesh
07 Feb 2019
2 min read
Save for later

Python Software foundation and JetBrains’ Python Developers Survey 2018

Prasad Ramesh
07 Feb 2019
2 min read
The Python Software Foundation and JetBrains conducted a Python survey to find the latest trends, usage, adoption in the Python community. There were more than 20,000 participants from over 150 countries. The Python Developers Survey 2018 was conducted for the second time in collaboration after the first one in 2017. Language usage From the Python survey, 84% of the developers stated that they use it as their primary language while the other 16% used it as a secondary language. This is up from the 79% of developers using Python as primary from 2017. About 50% of Python users also use JavaScript while other languages like C/C++, Java, and C# are used lesser than 2017. Bash/Shell is also being used more by Python developers. Python uses 60% of the respondents said that they use Python for both work and personal uses. 21% exclusively for personal, educational or side projects and 19% for work. 58% of Python users use the language for data analysis which is 8% more than last year. 52% use Python for web development and 43% for DevOps/system administration. Machine learning uses also saw an uptick of 7% and stands at 38%. In general, Python is used in data analysis applications more than for Web Development. The above numbers where multiple areas were available as choices. When there was only a single response available, web development was the most popular answer with 27%. Data analysis stood at 17% and machine learning at 11%. Interestingly, if you consider ‘data science’ data analysis and machine learning combined then most Python users are in this area totaling 28%. Python versions in use Python 3 is seeing larger adoption with 84% compared to 75% from 2017. Python 2 stands at 16% and will lose support from the core team next year. Major libraries are already dropping support for Python 2. Frameworks and libraries In web frameworks, Flask and Django were the most popular with 47% and 45%. In data science packages, NumPy was the most used with 62%. pandas and Matplotlib stand at 51% and 46%. To know more in-depth results of the Python survey, you can visit the JetBrains website. pandas will drop support for Python 2 this month with pandas 0.24 Python steering council election results are out for January 2019 Python 3.8.0 alpha 1 is now available for testing
Read more
  • 0
  • 0
  • 3102
article-image-exclusivity-enforcement-is-now-complete-in-swift-5
Prasad Ramesh
06 Feb 2019
2 min read
Save for later

Exclusivity enforcement is now complete in Swift 5

Prasad Ramesh
06 Feb 2019
2 min read
Yesterday Apple talked about exclusivity enforcement in Swift 5, in a post. No this is not some exclusive feature or patenting of some sort. This idea is on how variables in a Swift program access memory. Swift is the programming language used for developing Apple apps. What is exclusivity enforcement? The Swift 5 release allows runtime checks on “Exclusive Access to Memory”. This further adds to Swift showing that it is a ‘safe language’. For memory safety to take place, Swift needs exclusive access to a variable and modify it. This means that the variable can be accessed only with the same name when it is being modified as particular arguments. A programmer’s intention in case of exclusivity violations is often ambiguous in Swift. So, to protect against it and to allow the safety features, exclusivity enforcement was introduced in Swift 4. In Swift 4, both compile-time and run-time enforcement was available, the latter being available only in debug builds. Some of the holes in exclusivity enforcement are patched in Swift 5 by changing the language model. So runtime exclusivity enforcement is enabled by default in Release builds. This can impact Swift projects in two ways: Violation of Swift exclusivity rules causing a runtime trap Overhead due to memory access checks can degrade performance slightly Why exclusivity enforcement? This enforcement is done mainly to enforce memory safety in Swift. It eliminates dangerous interactions in Swift programs which involves mutable states Enforcement gets rid of unspecified behavior rules from Swift It is mandatory to maintain ABI stability In addition to protecting memory safety, this enforcement helps in optimizing performance The exclusivity rules give programmers the control to move only types Even though the memory problem is a rare occurrence, addressing it early on improves Swift a bit. A comment on Hacker news says: “The benefit being that you only have to deal with this issue rarely, rather than all the time with manual memory management.” Apple is patenting Swift features like optional chaining Swift 5 for Xcode 10.2 beta is here with stable ABI Swift is now available on Fedora 28
Read more
  • 0
  • 0
  • 2731

article-image-python-steering-council-election-results-are-out-for-january-2019
Prasad Ramesh
05 Feb 2019
2 min read
Save for later

Python steering council election results are out for January 2019

Prasad Ramesh
05 Feb 2019
2 min read
Last year, the steering council model was elected for Python governance. Now the results for the steering council election, January 2019 are out in PEP 8100. First some background about the steering council model: “Authored by Nathaniel J. Smith, and Donald Stufft, this proposal involves a model for Python governance based on a steering council. The council has vast authority, which they intend to use as rarely as possible, instead, they plan to use this power to establish standard processes. The steering council committee consists of five people. A general philosophy is followed—it’s better to split up large changes into a series of small changes to be reviewed independently. As opposed to trying to do everything in one PEP, the focus is on providing a minimal and solid foundation for future governance decisions. This PEP was accepted on December 17, 2018.” The goals of the model are to be: Boring, stick to the basics and not experiment Simplistic enough for a minimum viable product Comprehensive to avoid confusion Flexible and light-weight Of the 96 eligible voters, only 69 had cast ballots. The nomination period for the election was from January 7, 2019 to January 20, 2019. The voting period was from January 21, 2019 to February 4, 2019. The results are in and the top five candidates are: Barry Warsaw Brett Cannon Carol Willing Guido van Rossum Nick Coghlan Now, these five individuals are a part of the steering council for Python governance. The council will make decisions on PEPs. They will also work on maintaining the stability, quality of the Python language and interpreter. Python governance vote results are here: The steering council model is the winner NYU and AWS introduce Deep Graph Library (DGL), a python package to build neural network graphs Introducing RustPython, a Python 3 interpreter written in Rust
Read more
  • 0
  • 0
  • 2379

article-image-python-3-8-0-alpha-1-is-now-available-for-testing
Prasad Ramesh
05 Feb 2019
2 min read
Save for later

Python 3.8.0 alpha 1 is now available for testing

Prasad Ramesh
05 Feb 2019
2 min read
Yesterday, the first alpha of Python 3.8.0 was announced in a Python blog post. The most important change in this version is the addition of Assignment Expressions. This is the first alpha, three more are yet to be released. Keep in mind that the features are raw and not meant for production use. Some changes in Python 3.8.0 alpha 1: Security changes When spawning child processes, the command line option -I to run Python in isolated mode is now copied by the multiprocessing and distutils modules as well OpenSSL is updated to OpenSSL 1.1.0i for Windows builds The thread safety of error handling is fixed in _ssl A small fix to prevent buffer overrun in os.symlink for Windows Changes in core and builtins PEP 572: This introduces a new way which assigns values to variables in an expression by using the NAME := expr notation Parenthesis are made optional for named expressions in a while statement. Python initialization is reorganized to get exceptions and sys.stderr early. A small memory leak is fixed in pymain_parse_cmdline_impl. For unbalanced parentheses in f-string, the syntax messages are better. End line and end column position information are added to the Python AST nodes During the Python initialization, the Python filesystem encoding is read faster Library changes Shared memory submodule is added to multiprocessing in order to avoid serialization between processes The KeyError exception when using enums and compile is now fixed help() on metaclasses is fixed The raise(signum) is now exposed as raise_signal Building enums by value are now faster These were a select few changes in Python 3.8.0 alpha 1. For a complete list of changes, you may go through the changelog. Introducing RustPython, a Python 3 interpreter written in Rust EuroPython Society announces the ‘Guido van Rossum Core Developer Grant’ program to honor Python core developers pandas will drop support for Python 2 this month with pandas 0.24
Read more
  • 0
  • 0
  • 2443
article-image-state-of-go-february-2019-golang-developments-report-for-this-month-released
Prasad Ramesh
04 Feb 2019
2 min read
Save for later

State of Go February 2019 - Golang developments report for this month released

Prasad Ramesh
04 Feb 2019
2 min read
This Saturday, the Golang team released the State of Go February 2019 outlining the developments in the programming language and showing its current state. Since Golang 1.11, changes have been made to the standard library, tooling, and the community. Changes in the standard library html/template The behavior when an interface is typed to an implicit escaper function is changed. It was previously <nil> and is now ignored. Changes under bufio, NewReader The UnreadRune and UnreadByte methods from Reader will return an error if they are called after Peek. new ReplaceAll function There is a new ReplaceAll function where the value passed can be bytes or strings. Changes under builtin: maps printed sorted To print a map sorted by keys, developers can just print the map. However, note that iteration will be done randomly. TLS 1.3 Using TLS 1.3 in Go helps by causing one fewer round trip, securing only cipher suites, and provides support in all major browsers. Tooling changes The following commands now work: go run pkg go run dir Functions can now be run in the debugger. The godoc CLI is now deprecated. The go vet tool is deprecated in Go 1.12. It detects wrapped fmt.Printf errors. modules modules is an alternative to GOPATH. It has integrated versioning and package distribution. runtime/trace Now there are custom events to runtime traces. webassembly Go can now compile to WebAssembly (wasm files) Ports You need Go 1.11 and later for OpenBSD 6.4 arm64 runtime is now faster Windows/arm now has support for Raspberry Pi3 These were a select few important updates from the presentation, for more details you can view The State of Go: Feb 2019. The Golang team has started working on Go 2 proposals Golang just celebrated its ninth anniversary GoCity: Turn your Golang program into a 3D city
Read more
  • 0
  • 0
  • 3194

article-image-racket-7-2-a-descendent-of-scheme-and-lisp-is-now-out
Bhagyashree R
01 Feb 2019
2 min read
Save for later

Racket 7.2, a descendent of Scheme and Lisp, is now out!

Bhagyashree R
01 Feb 2019
2 min read
On Wednesday, the team behind Racket released Racket 7.2. Racket is a general-purpose, multi-paradigm programming language based on Scheme and Lisp that emphasizes on functional programming. Racket’s core is built on a lot of C code, which affects its portability to different systems, maintenance, and performance. Hence, back in 2017, the team decided to make the Racket distribution run on Chez Scheme. Racket on Chez Scheme (Racket CS) implementation has reached the almost complete status with all functionalities in place. Sharing the status of Racket CS, the blog post reads, “DrRacket CS works fully, the main Racket CS distribution can build itself, and 99.95% of the core Racket test suite passes”. Though the code runs fine, still some work needs to be done to ensure end-to-end performance to make Racket CS the default implementation of Racket. The following updates apply to both the implementations of Racket: Contract system:  The contract system, which guards one part of a program from another, now supports collapsible contracts. This will prevent repeated wrappers in certain pathological situations. Quickscript: Quickscript is a tool for DrRacket which allows you to quickly and easily extend DrRacket features. This scripting tool now comes bundled with the standard distribution. Web server configuration: The built-in configuration used for serving static files is updated to recognize the “.mjs” extension for JavaScript modules. The data/enumerate library: The library now supports an additional form of subtraction via but-not/e. The racklog library: A number of improvements are done such as fixing the logic variable binding, logic variables containing predicates being applicable, and the introduction of an %andmap higher-order predicate. Read the official announcement at Racket’s website. Racket v7.0 is out with overhauled internals, updates to DrRacket, TypedRacket among others Pharo 7.0 released with 64-bit support, a new build process and more PayPal replaces Flow with TypeScript as their type checker for every new web app
Read more
  • 0
  • 0
  • 3691