AMT Blog

Web.go – For Effortless Web Applications Development with Go Programming Language

Go-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

Read more…

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: 

(download)

Read more…

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. 

(download)

Read more…

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.

(download)

(download)


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.

Read more…

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.

Read more…

Filed under: Programming Languages

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.

11
To Posterous, Love Metalab