Web.go – For Effortless Web Applications Development with Go Programming Language
web.go lets you write web applications in the Go programming language, effortlessly. It's ideal for writing simple, performant backend web services.
web.go should be familiar to people who've developed websites with higher-level web frameworks like sinatra or web.py.
It is designed to be a lightweight web framework that doesn't impose any scaffolding on the user.
The code written by Michael Hoisie is available on GitHub under a MIT License. If you want to try it out, here is a really helpful tutorial to guide you.
Salient Features of web.go are:
- Routing to url handlers based on regular expressions
- Secure cookies
- Support for fastcgi and scgi
- Web applications are compiled to native code. This means very fast execution and page render speed
- Efficiently serving static files
Like what we post? Share your thoughts on the comments below. If you wish to get regular updates on what we post, do subscribe to our RSS Feed
Spiral for Automatic Performance Programming [Presentation]
Markus Püschel, Professor of Computer Science at ETH Zurich proposes to solve scientific calculation performance problems with code generation tools, introducing Spiral, an automatic performance-programming framework for linear transforms. It is a collection of interdisciplinary projects with the goal to develop new methodologies to automate software (and hardware) development and optimization for specific problem domains (commercial computing, signal processing, scientific computing). The project combines techniques from mathematics, programming languages, symbolic computation, compilers, machine learning, and others.
Key techniques used in Spiral include staged declarative domain-specific languages to express algorithm knowledge and algorithm transformations, the use of platform-cognizant rewriting systems for parallelism and locality optimizations, and the use of search and machine learning techniques to navigate possible spaces of choices. Experimental results show that the code generated by Spiral competes with, and sometimes outperforms, the best available human-written code. Spiral has been used to generate part of Intel's commercial libraries IPP and MKL.
Check out Markus’s presentation introducing Spiral for Automatic Performance Programming at Splash 2011 Conference right here below:
Like what we post? Share your thoughts on the comments below. If you wish to get regular updates on what we post, do subscribe to our RSS Feed
Mirah For Android Development [Slides]
Brendan Ribera, a Seattle based hacker introduces Mirah, a JVM-based programming language with a Ruby-like syntax, type inference, closures, meta-programming, macros etc.
Salient Features of Mirah:
- Ruby-like syntax
- Compiles to .class or .java
- Fast as Java
- No runtime library
Requirements:
- JRuby 1.6.0 or higher.
- BiteScript 0.0.8 or higher
Check out Brendan’s presentation at Strange Loop Conference, introducing Mirah for Android right here below.
Like what we post? Share your thoughts on the comments below. If you wish to get regular updates on what we post, do subscribe to our RSS Feed
Introducing Kotlin Programming Language (Presentation)
Andrey Breslav, a language designer and implementer at JetBrains introduces the upcoming Kotlin language, a general purpose JVM-based language, statically typed, object-oriented, and meant to be more concise than Java. Listen to the sound bytes & view the Slides of Andrey's presentation at Strange Loop conference right here below.
Strange Loop is a multi-disciplinary conference that aims to bring together the developers and thinkers building tomorrow's technology in fields such as emerging languages, alternative databases, concurrency, distributed systems, mobile development, and the web.
jDart - a Dart to JVM Bytecode Compiler
Google's newest programming language can now be run on the JVM, thanks to the JDart project hosted on Google Code. Unveiled at the goto conference last week, the Dart language is seen by some to be suitable for Java developers who can't get into Javascript. The language is supposed to make it easy to create quick prototypes using structured code. Visual Basic for the web? We'll see.
The JDart project is in it's early stages, with only a few instructions translated. The JDart compiler generates jar files to run on any Java 7 VM. The author has provided a few examples so you can see what the compiler actually generates. Here's the simple Hello World output. First the Dart code:
main() {
print("hello world");
}
is compiled to
public class test { public static void main(java.lang.String[]); Code: 0: invokedynamic #18, 0 // InvokeDynamic #0:__main__:()V 5: return public static java.lang.Object __main__(); Code: 0: ldc #21 // String hello world 2: invokedynamic #27, 0 // InvokeDynamic #1:print:(Ljava/lang/String;)V 7: aconst_null 8: areturn }Another example with a small inheritance hierarchy
class A { A() { } f() { print("A"); }}class B extends A { B():super() {} f() { print("B"); }}main() { var a1 = new A(); a1.f(); var a2 = new B(); a2.f(); final a3 = new A(); a3.f(); final a4 = new B(); a4.f(); A a5 = new A(); a5.f(); B a6 = new B(); a6.f();}is compiled to
public class A { public A(); Code: 0: aload_0 1: invokespecial #9 // Method java/lang/Object."<init>":()V 4: return public void A(); Code: 0: return public java.lang.Object f(); Code: 0: ldc #12 // String A 2: invokedynamic #25, 0 // InvokeDynamic #0:print:(Ljava/lang/String;)V 7: aconst_null 8: areturn }public class B extends A { public B(); Code: 0: aload_0 1: invokespecial #9 // Method A."<init>":()V 4: return public void B(); Code: 0: aload_0 1: invokedynamic #19, 0 // InvokeDynamic #0:A:(LA;)V 6: return public java.lang.Object f(); Code: 0: ldc #22 // String B 2: invokedynamic #33, 0 // InvokeDynamic #1:print:(Ljava/lang/String;)V 7: aconst_null 8: areturn }public class inheritance { public static void main(java.lang.String[]); Code: 0: invokedynamic #18, 0 // InvokeDynamic #0:__main__:()V 5: return public static java.lang.Object __main__(); Code: 0: invokedynamic #28, 0 // InvokeDynamic #1:A:()LA; 5: astore_0 6: aload_0 7: invokedynamic #36, 0 // InvokeDynamic #2:f:(Ljava/lang/Object;)V 12: invokedynamic #40, 0 // InvokeDynamic #1:B:()LB; 17: astore_1 18: aload_1 19: invokedynamic #36, 0 // InvokeDynamic #2:f:(Ljava/lang/Object;)V 24: invokedynamic #28, 0 // InvokeDynamic #1:A:()LA; 29: astore_2 30: aload_2 31: invokedynamic #43, 0 // InvokeDynamic #2:f:(LA;)V 36: invokedynamic #40, 0 // InvokeDynamic #1:B:()LB; 41: astore_3 42: aload_3 43: invokedynamic #46, 0 // InvokeDynamic #2:f:(LB;)V 48: invokedynamic #28, 0 // InvokeDynamic #1:A:()LA; 53: astore 4 55: aload 4 57: invokedynamic #43, 0 // InvokeDynamic #2:f:(LA;)V 62: invokedynamic #40, 0 // InvokeDynamic #1:B:()LB; 67: astore 5 69: aload 5 71: invokedynamic #46, 0 // InvokeDynamic #2:f:(LB;)V 76: aconst_null 77: areturn }It's very early days for Dart, and it has a long way to go if it has any chance of toppling Javascript. But if you've been messing around with the languages, perhaps this project gives you another reason to consider moving to it for your web applications.
Poll: Most Preferred .Net Programming Language
The Microsoft .NET Framework is a software technology that is available with several Microsoft Windows operating systems. It includes a large library of pre-coded solutions to common programming problems and a virtual machine that manages the execution of programs written specifically for the framework. The .NET Framework is a key Microsoft offering and is intended to be used by most new applications created for the Windows platform.

