Clojure
Rich Hickey discusses Clojure features and syntax, example code, functional programming, concurrency semantics, transactions, software transactional memory, agents, implementation and pain points.
- Java,
Tracking change and innovation in the enterprise software development community
Posted by Jon Rose on Nov 13, 2007 12:43 AM
The ActionScript Virtual Machine 2 (AVM2) executes ActionScript 3.0 (AS3) bytecode in the Flash Player 9 runtime. ActionScript 3 is an Object Oriented programming language, used by developers to build Flash based applications in Adobe Flex and AIR. AS3 is fully compliant with the Third Edition of the ECMAScript standard.Prior to AS3, all type information was stripped out of the code when compiled. At runtime, everything was just dynamically typed atoms. Starting with AS3, we can get the type information all the way down to the runtime.Method Closures
… Using explicitly typed variables can improve performance and reduce memory consumption.
In AS3, we got method closures, which also mean we can create variables that are functions, and pass them around, while the function still retains the environment, it was created within ("this" is still what "this" was, when defined).In Gary Grossman's and Emmy Huang's article, ‘Action Script 3.0 Overview,’ they describe a key usage of Method Closures:
Event handling is simplified in ActionScript 3.0 thanks to method closures, which provide built-in event delegation.Just-in-Time (JIT) Compiler
myButton.addEventListener("click", someMethod);
In practice, the AVM2 may transform the code at run-time by means of a JIT, but this does not affect the semantics of execution, only its performance.Olesen does note one impact developers should consider:
There is one thing to take notice of with JIT in AVM2. Constructors are not JIT'ed, so if you have performance intensive code in a class, take it out of the constructor.Garbage Collection
The memory management and garbage collector is to be found in the separate MMgc project. This is a Deferred Reference Counting (DRC) mechanism combined with an incremental, conservative mark/sweep collector. Of course, the garbage collector implementation has been tuned for best client performance, with small (30ms) time slices.For those looking for additional resources, , Farata Systems has a detailed blog entry comparing the language syntax between Java 5 and ActionScript 3. Also, more information can be found on AVM2 by reviewing the Mozilla Tamarin Project. Tamarin is the AVM2 implementation used in the Flash Player 9 and AIR platform. In addition, Adobe has a community Flex site dedicated to Java Developers at, http://flex.org/java/.
Creating Rich Internet Applications with the Adobe Technology Platform
Rich Hickey discusses Clojure features and syntax, example code, functional programming, concurrency semantics, transactions, software transactional memory, agents, implementation and pain points.
We introduce the concept of Composite Oriented Programming, and show how it avoids the issues with OOP and reignites the hope of being able to compose domain models with reusable pieces.
Dan Farino talks about the system architecture and the challenges faced when building a very large online community. Dan explains how a .NET product scales on hundreds of servers.
Alan Shalloway, CEO and founder of Net Objectives, presents the Lean software development principles and practices and how they can benefit to Agile practitioners.
Bernd Mathiske discusses Maxine VM, Java compatibility, swapping major VM components, research areas, Object handling, code examples, optimizing compiler, snippets, bytecode generation, JNI and JIT.
Joe Armstrong speaks on various aspects of the Erlang language, presenting its roots, how it compares with other languages and why it has become popular these days.
The java double-check singleton pattern is not thread safe and can’t be fixed. In this article, Dr. Alexey Yakubovich provides an implementation of the Singleton pattern that he claims is thread-safe.
Diana and Jim talk about patterns observed in CTOs' activity. CTOs emerge as real people caring for other people in their organization, and are put under a lot of pressure and constraints.
No comments
Reply