SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Introduction
                Languages
                    Action
                Resources




Alternative Programming Languages
      Mercury - JavaFX - Piet - Go


            Seraf´ V´lez Barrera
                 ın e
      serafin.velez.barrera@gmail.com


          Universidad de Granada

            11 de Enero de 2011




      Seraf´ V´lez Barrera
           ın e              Alternative Programming Languages
Introduction
                                   Languages
                                       Action
                                   Resources


Index


  1   Introduction

  2   Languages
        Mercury
        JavaFX
        Piet
        GO

  3   1,2,3... Action!

  4   Resources



                         Seraf´ V´lez Barrera
                              ın e              Alternative Programming Languages
Introduction
                              Languages
                                  Action
                              Resources


What is a programming language




  Definition
  A programming language is an artificial language designed to
  communicate instructions to a machine




                    Seraf´ V´lez Barrera
                         ın e              Alternative Programming Languages
Introduction
                               Languages
                                   Action
                               Resources


Types




   1    General purpose: C, C++, Java, etc




                     Seraf´ V´lez Barrera
                          ın e              Alternative Programming Languages
Introduction
                               Languages
                                   Action
                               Resources


Types




   1    General purpose: C, C++, Java, etc
   2    Specific language: VHDL




                     Seraf´ V´lez Barrera
                          ın e              Alternative Programming Languages
Introduction
                                Languages
                                    Action
                                Resources


Types




   1    General purpose: C, C++, Java, etc
   2    Specific language: VHDL
   3    Others: Artistic, etc




                      Seraf´ V´lez Barrera
                           ın e              Alternative Programming Languages
Introduction   Mercury
          Languages    JavaFX
              Action   Piet
          Resources    GO




       Mercury




Seraf´ V´lez Barrera
     ın e              Alternative Programming Languages
Introduction   Mercury
                              Languages    JavaFX
                                  Action   Piet
                              Resources    GO


Introduction


      Designed and implemented by a small group of researchers at
      the University of Melbourne (Australia) between this group
      there are: Fergus Henderson, Thomas Conway, etc.
      Based on the paradigm of purely declarative programming,
      and was designed to be useful for the development of large
      and robust “real-world” applications.
      It improves on existing logic programming languages by
      providing increased productivity, reliability and efficiency, and
      by avoiding the need for non-logical program constructs.




                    Seraf´ V´lez Barrera
                         ın e              Alternative Programming Languages
Introduction   Mercury
                              Languages    JavaFX
                                  Action   Piet
                              Resources    GO


Introduction


  This language differentiates of the rest by the concept to program.

                                      Why?

  Because is a logical programming and the syntax is similar to
  Prolog, with some additional declarations for types, modes,
  determinism, the module system, and pragmas, and with the
  distinction that function symbols may stand also for invocations of
  user- defined functions as well as for data constructors.




                    Seraf´ V´lez Barrera
                         ın e              Alternative Programming Languages
Introduction   Mercury
                               Languages    JavaFX
                                   Action   Piet
                               Resources    GO


Syntax

  Mercury have a syntax similar to Pascal but this language use
  terms like:
      Tokens
      Predicates
  because is a logical programming language and is:
      A strongly typed language:
           :− t y p e l i s t (T) −−−> [ ] ; [ T |            l i s t (T ) ] .


      A strongly moded language:
           :− mode append ( i n , i n , o u t ) .




                     Seraf´ V´lez Barrera
                          ın e              Alternative Programming Languages
Introduction   Mercury
                                Languages    JavaFX
                                    Action   Piet
                                Resources    GO


Developing an app




  In other Workshop




                      Seraf´ V´lez Barrera
                           ın e              Alternative Programming Languages
Introduction   Mercury
          Languages    JavaFX
              Action   Piet
          Resources    GO




Seraf´ V´lez Barrera
     ın e              Alternative Programming Languages
Introduction   Mercury
                               Languages    JavaFX
                                   Action   Piet
                               Resources    GO


Introduction



  JavaFX is a language that is oriented to create RIA app’s (RIA =
  Rich Internet Application) and this app’s integrate the simplicity of
  a web app and the potentially of a desktop app.
  JavaFX include various technologys like JavaFX Script, JavaFX
  Mobile, and JavaFX TV.
  We are going to see JavaFX Script, apart of to be a scripting
  language is a language to desing User Interfaces, so have the
  powerfull of a script with the design of interfaces in graphic mode.




                     Seraf´ V´lez Barrera
                          ın e              Alternative Programming Languages
Introduction   Mercury
                              Languages    JavaFX
                                  Action   Piet
                              Resources    GO


Developing an app




  In other Workshop - Maybe later there will be a demo.




                    Seraf´ V´lez Barrera
                         ın e              Alternative Programming Languages
Introduction   Mercury
          Languages    JavaFX
              Action   Piet
          Resources    GO




              Piet




Seraf´ V´lez Barrera
     ın e              Alternative Programming Languages
Introduction   Mercury
                              Languages    JavaFX
                                  Action   Piet
                              Resources    GO


Introduction



  Piet (named after painter Piet Mondrian) is one of the most
  known esoteric programming languages, which uses images as
  source code. The language uses 20 colors, and the commands are
  encoded as changes of color between adjacent pixels.
  Piet was created by David Morgan-Mar, who aimed for a language
  which would have its code look like abstract art. The language
  hasn’t spawned any dialects; there are several implementations,
  which differ slightly, mainly in the way the colors are processed.




                    Seraf´ V´lez Barrera
                         ın e              Alternative Programming Languages
Introduction   Mercury
                              Languages    JavaFX
                                  Action   Piet
                              Resources    GO


Developing an app




  In other Workshop - Maybe later there will be some examples.




                    Seraf´ V´lez Barrera
                         ın e              Alternative Programming Languages
Introduction   Mercury
          Languages    JavaFX
              Action   Piet
          Resources    GO




               GO




Seraf´ V´lez Barrera
     ın e              Alternative Programming Languages
Introduction   Mercury
                              Languages    JavaFX
                                  Action   Piet
                              Resources    GO


Introduction

  GO was designed by Ken Thompson, Rob Pike, Robert Griesemer
  + Contributors + Open Source comunity.
  Features:
      General purpose
      Concise syntax
      Expressive type system
      Concurrency
      Garbage collection
      Fast compilation
      Efficient execution


                    Seraf´ V´lez Barrera
                         ın e              Alternative Programming Languages
Introduction   Mercury
                              Languages    JavaFX
                                  Action   Piet
                              Resources    GO


Introduction



  Combines the powerfull and safety of a statically typed compiled
  language with the the expressiveness and convenience of a
  dynamically typed interpreted language.
  Designed as a systems language (for develop app like: Web
  Servers, Browsers, etc).
  Influenced by other languages: C, Modula, Pascal, Python, etc.




                    Seraf´ V´lez Barrera
                         ın e              Alternative Programming Languages
Introduction   Mercury
                               Languages    JavaFX
                                   Action   Piet
                               Resources    GO


Syntax


     Comments
     /∗ T h i s i s a comment ; no n e s t i n g ∗/
     // So i s t h i s .

     Structs
     type Point s t r u c t { x , y f l o a t }
     f u n c ( p P o i n t ) Abs ( ) f l o a t {
            r e t u r n math . S q r t ( p . x ∗p . x + p . y ∗p . y )
     }




                     Seraf´ V´lez Barrera
                          ın e              Alternative Programming Languages
Introduction   Mercury
                             Languages    JavaFX
                                 Action   Piet
                             Resources    GO


Syntax


     Methods
     type Vector [ ] f l o a t
     f u n c ( v V e c t o r ) Abs ( ) f l o a t {
            sumOfSquares := 0 . 0
            f o r i := r a n g e v {
                    sumOfSquares += v [ i ] ∗ v [ i ]
            }
            r e t u r n math . S q r t ( sumOfSquares )
     }




                   Seraf´ V´lez Barrera
                        ın e              Alternative Programming Languages
Introduction   Mercury
                               Languages    JavaFX
                                   Action   Piet
                               Resources    GO


Syntax

     Interfaces
     type Abser i n t e r f a c e {
         Abs ( ) f l o a t
     }
     var a Abser

     a = P o i n t { 3 , 4}
     p r i n t ( a . Abs ( ) )

     a = V e c t o r { 1 , 2 , 3 , 4}
     p r i n t ( a . Abs ( ) )


                     Seraf´ V´lez Barrera
                          ın e              Alternative Programming Languages
Introduction   Mercury
                            Languages    JavaFX
                                Action   Piet
                            Resources    GO


Syntax




     Visibility
     ThisNameIsPublic
     thisOneIsNot




                  Seraf´ V´lez Barrera
                       ın e              Alternative Programming Languages
Introduction   Mercury
                                     Languages    JavaFX
                                         Action   Piet
                                     Resources    GO


Developing an app


                      1st Step - Install the environment

  Install C tools:
  sudo apt−g e t i n s t a l l b i s o n gawk g c c l i b c 6 −dev make

  Install mercurial:
  sudo e a s y i n s t a l l m e r c u r i a l

  Fetch the repository:
  hg c l o n e −u r e l e a s e h t t p s : // go . g o o g l e c o d e . com/ hg / go




                           Seraf´ V´lez Barrera
                                ın e              Alternative Programming Languages
Introduction      Mercury
                                          Languages       JavaFX
                                              Action      Piet
                                          Resources       GO


Developing an app




                         1st Step - Install the environment

  Install the environment:
  sudo mv go / / u s r / l o c a l /
  cd / u s r / l o c a l / go / s r c
  . / a l l . bash

  See bash and GO documentation to set up GO Path in the environment.




                               Seraf´ V´lez Barrera
                                    ın e                  Alternative Programming Languages
Introduction   Mercury
                                   Languages    JavaFX
                                       Action   Piet
                                   Resources    GO


Developing an app




                   1st Step - Install the environment

  Fetch last version:
      cd go / s r c
      hg p u l l
      hg u p d a t e r e l e a s e
      . / a l l . bash




                         Seraf´ V´lez Barrera
                              ın e              Alternative Programming Languages
Introduction    Mercury
                                       Languages     JavaFX
                                           Action    Piet
                                       Resources     GO


Developing an app


                                     2nd Step - Code

  We can code the easiest example at last version: “Hello world”
  2.0 :)
  p a c k a g e main

  i m p o r t ” fmt ”

  f u n c main ( ) {
         fmt . P r i n t f ( ” H e l l o w o r l d 2 . 0  n” )
  }




                             Seraf´ V´lez Barrera
                                  ın e               Alternative Programming Languages
Introduction   Mercury
                                Languages    JavaFX
                                    Action   Piet
                                Resources    GO


Developing an app


                     3rd Step - Compile and test

     Compile:
             6g h e l l o w o r l d . go

     Link:
             6 l helloworld .6

     Test:
             . / 6 . out


                      Seraf´ V´lez Barrera
                           ın e              Alternative Programming Languages
Introduction
                  Languages
                      Action
                  Resources


Demos




                                  DEMO!


        Seraf´ V´lez Barrera
             ın e              Alternative Programming Languages
Introduction
                               Languages
                                   Action
                               Resources


Resources


  Go
         Website Go Lang
         Youtube channel Google Developers
  Mercury
         Website
  JavaFX
         Website
  Piet
         Website



                     Seraf´ V´lez Barrera
                          ın e              Alternative Programming Languages
Introduction
                              Languages
                                  Action
                              Resources


License


  This document have the following license:




  Seraf´ V´lez Barrera – Oficina de Software Libre
       ın e
  serafin.velez.barrera@gmail.com



                    Seraf´ V´lez Barrera
                         ın e              Alternative Programming Languages

Contenu connexe

Tendances

OOP Comparative Study
OOP Comparative StudyOOP Comparative Study
OOP Comparative StudyDarren Tan
 
Object oriented slides
Object oriented slidesObject oriented slides
Object oriented slidesahad nadeem
 
The Whole Platform A Language Workbench for Eclipse
The Whole Platform A Language Workbench for EclipseThe Whole Platform A Language Workbench for Eclipse
The Whole Platform A Language Workbench for EclipseRiccardo Solmi
 
A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...IRJET Journal
 
Mps Presentation
Mps PresentationMps Presentation
Mps Presentationguestaa97d9
 
From Programming to Modeling And Back Again
From Programming to Modeling And Back AgainFrom Programming to Modeling And Back Again
From Programming to Modeling And Back AgainMarkus Voelter
 
plone.app.multilingual
plone.app.multilingual plone.app.multilingual
plone.app.multilingual Ramon Navarro
 
Compiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionCompiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionEelco Visser
 
Introduction to c_sharp
Introduction to c_sharpIntroduction to c_sharp
Introduction to c_sharpHEM Sothon
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...Maarten Balliauw
 
Programming Languages and Program Develompent
Programming Languages and Program DevelompentProgramming Languages and Program Develompent
Programming Languages and Program DevelompentSamudin Kassan
 
Profiler Instrumentation Using Metaprogramming Techniques
Profiler Instrumentation Using Metaprogramming TechniquesProfiler Instrumentation Using Metaprogramming Techniques
Profiler Instrumentation Using Metaprogramming TechniquesRitu Arora
 
Dev Days, Speech Recognition, LM Aubert
Dev Days, Speech Recognition, LM AubertDev Days, Speech Recognition, LM Aubert
Dev Days, Speech Recognition, LM Aubertaubertlm
 
Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?Eelco Visser
 

Tendances (19)

OOP Comparative Study
OOP Comparative StudyOOP Comparative Study
OOP Comparative Study
 
Object oriented slides
Object oriented slidesObject oriented slides
Object oriented slides
 
Lecture 11
Lecture 11Lecture 11
Lecture 11
 
The Whole Platform A Language Workbench for Eclipse
The Whole Platform A Language Workbench for EclipseThe Whole Platform A Language Workbench for Eclipse
The Whole Platform A Language Workbench for Eclipse
 
A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...
 
Mps Presentation
Mps PresentationMps Presentation
Mps Presentation
 
From Programming to Modeling And Back Again
From Programming to Modeling And Back AgainFrom Programming to Modeling And Back Again
From Programming to Modeling And Back Again
 
plone.app.multilingual
plone.app.multilingual plone.app.multilingual
plone.app.multilingual
 
Anabela Barreiro - Alinhamentos
Anabela Barreiro - AlinhamentosAnabela Barreiro - Alinhamentos
Anabela Barreiro - Alinhamentos
 
Cross language alignments - challenges guidelines and gold sets
Cross language alignments - challenges guidelines and gold setsCross language alignments - challenges guidelines and gold sets
Cross language alignments - challenges guidelines and gold sets
 
Compiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler ConstructionCompiler Construction | Lecture 17 | Beyond Compiler Construction
Compiler Construction | Lecture 17 | Beyond Compiler Construction
 
Introduction to c_sharp
Introduction to c_sharpIntroduction to c_sharp
Introduction to c_sharp
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
 
Programming Languages and Program Develompent
Programming Languages and Program DevelompentProgramming Languages and Program Develompent
Programming Languages and Program Develompent
 
Profiler Instrumentation Using Metaprogramming Techniques
Profiler Instrumentation Using Metaprogramming TechniquesProfiler Instrumentation Using Metaprogramming Techniques
Profiler Instrumentation Using Metaprogramming Techniques
 
Dev Days, Speech Recognition, LM Aubert
Dev Days, Speech Recognition, LM AubertDev Days, Speech Recognition, LM Aubert
Dev Days, Speech Recognition, LM Aubert
 
Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?
 
SPIDER: a System for Paraphrasing - Applicability in Machine Translation Pre-...
SPIDER: a System for Paraphrasing - Applicability in Machine Translation Pre-...SPIDER: a System for Paraphrasing - Applicability in Machine Translation Pre-...
SPIDER: a System for Paraphrasing - Applicability in Machine Translation Pre-...
 
Catalan daily goes Catalan
Catalan daily goes CatalanCatalan daily goes Catalan
Catalan daily goes Catalan
 

En vedette

Präs baujournal
Präs baujournalPräs baujournal
Präs baujournalTom Treber
 
大學生之於吃
大學生之於吃大學生之於吃
大學生之於吃songla
 
Regio alueyhteistyömalli 2012
Regio alueyhteistyömalli 2012Regio alueyhteistyömalli 2012
Regio alueyhteistyömalli 2012Vesa Sarmia
 
Boses Ng Kabataan Competition Paper
Boses Ng Kabataan Competition PaperBoses Ng Kabataan Competition Paper
Boses Ng Kabataan Competition Paperguest6b6bedc
 
Audit PC content
Audit PC content Audit PC content
Audit PC content iansadler
 
Presentation1
Presentation1Presentation1
Presentation1Rasha.g
 
Free software
Free softwareFree software
Free softwareseravb
 
Protection for Single PCs
Protection for Single PCsProtection for Single PCs
Protection for Single PCsiansadler
 
Va\\lue of e-safebusiness solutions
Va\\lue of e-safebusiness solutionsVa\\lue of e-safebusiness solutions
Va\\lue of e-safebusiness solutionsiansadler
 
Network GRC Delivery
Network GRC DeliveryNetwork GRC Delivery
Network GRC Deliveryiansadler
 
Hk yhdessäolon taidot ja toimivan ryhmäytymisen kor2802
Hk yhdessäolon taidot ja toimivan ryhmäytymisen kor2802Hk yhdessäolon taidot ja toimivan ryhmäytymisen kor2802
Hk yhdessäolon taidot ja toimivan ryhmäytymisen kor2802Vesa Sarmia
 
19271931 dove-final-presentation-1
19271931 dove-final-presentation-119271931 dove-final-presentation-1
19271931 dove-final-presentation-1suraj333
 

En vedette (17)

Präs baujournal
Präs baujournalPräs baujournal
Präs baujournal
 
大學生之於吃
大學生之於吃大學生之於吃
大學生之於吃
 
Präs plank
Präs plankPräs plank
Präs plank
 
Llibre ksandra
Llibre ksandraLlibre ksandra
Llibre ksandra
 
Regio alueyhteistyömalli 2012
Regio alueyhteistyömalli 2012Regio alueyhteistyömalli 2012
Regio alueyhteistyömalli 2012
 
Boses Ng Kabataan Competition Paper
Boses Ng Kabataan Competition PaperBoses Ng Kabataan Competition Paper
Boses Ng Kabataan Competition Paper
 
Audit PC content
Audit PC content Audit PC content
Audit PC content
 
Presentation1
Presentation1Presentation1
Presentation1
 
Free software
Free softwareFree software
Free software
 
Protection for Single PCs
Protection for Single PCsProtection for Single PCs
Protection for Single PCs
 
Komm 2.0
Komm 2.0Komm 2.0
Komm 2.0
 
Va\\lue of e-safebusiness solutions
Va\\lue of e-safebusiness solutionsVa\\lue of e-safebusiness solutions
Va\\lue of e-safebusiness solutions
 
Network GRC Delivery
Network GRC DeliveryNetwork GRC Delivery
Network GRC Delivery
 
C:\Fakepath\Impress
C:\Fakepath\ImpressC:\Fakepath\Impress
C:\Fakepath\Impress
 
Hk yhdessäolon taidot ja toimivan ryhmäytymisen kor2802
Hk yhdessäolon taidot ja toimivan ryhmäytymisen kor2802Hk yhdessäolon taidot ja toimivan ryhmäytymisen kor2802
Hk yhdessäolon taidot ja toimivan ryhmäytymisen kor2802
 
19271931 dove-final-presentation-1
19271931 dove-final-presentation-119271931 dove-final-presentation-1
19271931 dove-final-presentation-1
 
X ray diffraction
X ray diffractionX ray diffraction
X ray diffraction
 

Similaire à Lenguajes programacionalternativos

Java language is different from other programming languages, How?
Java language is different  from other programming languages, How?Java language is different  from other programming languages, How?
Java language is different from other programming languages, How?Gyanguide1
 
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...Katy Slemon
 
Overview of Java
Overview of JavaOverview of Java
Overview of Javajosemachoco
 
Languages used by web app development services remotestac x
Languages used by web app development services  remotestac xLanguages used by web app development services  remotestac x
Languages used by web app development services remotestac xRemote Stacx
 
JRuby in a Java World
JRuby in a Java WorldJRuby in a Java World
JRuby in a Java WorldMark Menard
 
Nairuby metaprogramming with ruby
Nairuby metaprogramming with rubyNairuby metaprogramming with ruby
Nairuby metaprogramming with rubyNanjekye Joannah
 
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"Olga Lavrentieva
 
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?CHOOSE
 
Procedural Programming Of Programming Languages
Procedural Programming Of Programming LanguagesProcedural Programming Of Programming Languages
Procedural Programming Of Programming LanguagesTammy Moncrief
 
DSL, the absolute weapon for the development
DSL, the absolute weapon for the developmentDSL, the absolute weapon for the development
DSL, the absolute weapon for the developmentESUG
 
Overview new programming languages
Overview new programming languagesOverview new programming languages
Overview new programming languagesumoren
 
java vs javascript demystifying the differences | web creative solution
java vs javascript demystifying the differences | web creative solution java vs javascript demystifying the differences | web creative solution
java vs javascript demystifying the differences | web creative solution seowci
 
Dart: A Replacement for JavaScript and Why You Should Care
Dart: A Replacement for JavaScript and Why You Should CareDart: A Replacement for JavaScript and Why You Should Care
Dart: A Replacement for JavaScript and Why You Should CareKevin Gisi
 
Intro flash cards
Intro flash cardsIntro flash cards
Intro flash cardslorhow58
 
Intro flash cards
Intro flash cardsIntro flash cards
Intro flash cardslorhow58
 
java-vs-java-script-demystifying-the-differences | web creative solution
java-vs-java-script-demystifying-the-differences | web creative solution java-vs-java-script-demystifying-the-differences | web creative solution
java-vs-java-script-demystifying-the-differences | web creative solution seowci
 
ENGLISH-LANGUAGE-LAB-DIGITAL-LANGUAGE-LAB-TEACHERS-DONT-BE-A-SUPERVISOROBSERV...
ENGLISH-LANGUAGE-LAB-DIGITAL-LANGUAGE-LAB-TEACHERS-DONT-BE-A-SUPERVISOROBSERV...ENGLISH-LANGUAGE-LAB-DIGITAL-LANGUAGE-LAB-TEACHERS-DONT-BE-A-SUPERVISOROBSERV...
ENGLISH-LANGUAGE-LAB-DIGITAL-LANGUAGE-LAB-TEACHERS-DONT-BE-A-SUPERVISOROBSERV...Digital English Language Lab
 
Bitter Java, Sweeten with JRuby
Bitter Java, Sweeten with JRubyBitter Java, Sweeten with JRuby
Bitter Java, Sweeten with JRubyBrian Sam-Bodden
 
Scala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJScala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJRodrigo Lima
 
Entrepreneur’s guide to programming
Entrepreneur’s guide to programmingEntrepreneur’s guide to programming
Entrepreneur’s guide to programmingChris Callahan
 

Similaire à Lenguajes programacionalternativos (20)

Java language is different from other programming languages, How?
Java language is different  from other programming languages, How?Java language is different  from other programming languages, How?
Java language is different from other programming languages, How?
 
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
Ruby vs Java: Comparing Two Popular Programming Languages For Developing Ente...
 
Overview of Java
Overview of JavaOverview of Java
Overview of Java
 
Languages used by web app development services remotestac x
Languages used by web app development services  remotestac xLanguages used by web app development services  remotestac x
Languages used by web app development services remotestac x
 
JRuby in a Java World
JRuby in a Java WorldJRuby in a Java World
JRuby in a Java World
 
Nairuby metaprogramming with ruby
Nairuby metaprogramming with rubyNairuby metaprogramming with ruby
Nairuby metaprogramming with ruby
 
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
Александр Ломов: "Reactjs + Haskell + Cloud Foundry = Love"
 
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
 
Procedural Programming Of Programming Languages
Procedural Programming Of Programming LanguagesProcedural Programming Of Programming Languages
Procedural Programming Of Programming Languages
 
DSL, the absolute weapon for the development
DSL, the absolute weapon for the developmentDSL, the absolute weapon for the development
DSL, the absolute weapon for the development
 
Overview new programming languages
Overview new programming languagesOverview new programming languages
Overview new programming languages
 
java vs javascript demystifying the differences | web creative solution
java vs javascript demystifying the differences | web creative solution java vs javascript demystifying the differences | web creative solution
java vs javascript demystifying the differences | web creative solution
 
Dart: A Replacement for JavaScript and Why You Should Care
Dart: A Replacement for JavaScript and Why You Should CareDart: A Replacement for JavaScript and Why You Should Care
Dart: A Replacement for JavaScript and Why You Should Care
 
Intro flash cards
Intro flash cardsIntro flash cards
Intro flash cards
 
Intro flash cards
Intro flash cardsIntro flash cards
Intro flash cards
 
java-vs-java-script-demystifying-the-differences | web creative solution
java-vs-java-script-demystifying-the-differences | web creative solution java-vs-java-script-demystifying-the-differences | web creative solution
java-vs-java-script-demystifying-the-differences | web creative solution
 
ENGLISH-LANGUAGE-LAB-DIGITAL-LANGUAGE-LAB-TEACHERS-DONT-BE-A-SUPERVISOROBSERV...
ENGLISH-LANGUAGE-LAB-DIGITAL-LANGUAGE-LAB-TEACHERS-DONT-BE-A-SUPERVISOROBSERV...ENGLISH-LANGUAGE-LAB-DIGITAL-LANGUAGE-LAB-TEACHERS-DONT-BE-A-SUPERVISOROBSERV...
ENGLISH-LANGUAGE-LAB-DIGITAL-LANGUAGE-LAB-TEACHERS-DONT-BE-A-SUPERVISOROBSERV...
 
Bitter Java, Sweeten with JRuby
Bitter Java, Sweeten with JRubyBitter Java, Sweeten with JRuby
Bitter Java, Sweeten with JRuby
 
Scala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJScala Introduction - Meetup Scaladores RJ
Scala Introduction - Meetup Scaladores RJ
 
Entrepreneur’s guide to programming
Entrepreneur’s guide to programmingEntrepreneur’s guide to programming
Entrepreneur’s guide to programming
 

Plus de seravb

Scraping
ScrapingScraping
Scrapingseravb
 
Gtk-RecordMyDesktop
Gtk-RecordMyDesktopGtk-RecordMyDesktop
Gtk-RecordMyDesktopseravb
 
Cómo reciclar equipos y no morir en el intento
Cómo reciclar equipos y no morir en el intentoCómo reciclar equipos y no morir en el intento
Cómo reciclar equipos y no morir en el intentoseravb
 
Final CUSL: Presentación
Final CUSL: PresentaciónFinal CUSL: Presentación
Final CUSL: Presentaciónseravb
 
4ºHackathón: Presentación
4ºHackathón: Presentación4ºHackathón: Presentación
4ºHackathón: Presentaciónseravb
 
3er Hackathon: Presentación de cambios
3er Hackathon: Presentación de cambios3er Hackathon: Presentación de cambios
3er Hackathon: Presentación de cambiosseravb
 
3er Hackathon: Preparacion Asistentes Hackathón
3er Hackathon: Preparacion Asistentes Hackathón3er Hackathon: Preparacion Asistentes Hackathón
3er Hackathon: Preparacion Asistentes Hackathónseravb
 
3er Hackathon: Presentación Hackathón Inicial
3er Hackathon: Presentación Hackathón Inicial3er Hackathon: Presentación Hackathón Inicial
3er Hackathon: Presentación Hackathón Inicialseravb
 
Software libre
Software libreSoftware libre
Software libreseravb
 
Memorias ram
Memorias ramMemorias ram
Memorias ramseravb
 

Plus de seravb (11)

Scraping
ScrapingScraping
Scraping
 
Gtk-RecordMyDesktop
Gtk-RecordMyDesktopGtk-RecordMyDesktop
Gtk-RecordMyDesktop
 
Cómo reciclar equipos y no morir en el intento
Cómo reciclar equipos y no morir en el intentoCómo reciclar equipos y no morir en el intento
Cómo reciclar equipos y no morir en el intento
 
Scrum
ScrumScrum
Scrum
 
Final CUSL: Presentación
Final CUSL: PresentaciónFinal CUSL: Presentación
Final CUSL: Presentación
 
4ºHackathón: Presentación
4ºHackathón: Presentación4ºHackathón: Presentación
4ºHackathón: Presentación
 
3er Hackathon: Presentación de cambios
3er Hackathon: Presentación de cambios3er Hackathon: Presentación de cambios
3er Hackathon: Presentación de cambios
 
3er Hackathon: Preparacion Asistentes Hackathón
3er Hackathon: Preparacion Asistentes Hackathón3er Hackathon: Preparacion Asistentes Hackathón
3er Hackathon: Preparacion Asistentes Hackathón
 
3er Hackathon: Presentación Hackathón Inicial
3er Hackathon: Presentación Hackathón Inicial3er Hackathon: Presentación Hackathón Inicial
3er Hackathon: Presentación Hackathón Inicial
 
Software libre
Software libreSoftware libre
Software libre
 
Memorias ram
Memorias ramMemorias ram
Memorias ram
 

Dernier

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 

Dernier (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

Lenguajes programacionalternativos

  • 1. Introduction Languages Action Resources Alternative Programming Languages Mercury - JavaFX - Piet - Go Seraf´ V´lez Barrera ın e serafin.velez.barrera@gmail.com Universidad de Granada 11 de Enero de 2011 Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 2. Introduction Languages Action Resources Index 1 Introduction 2 Languages Mercury JavaFX Piet GO 3 1,2,3... Action! 4 Resources Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 3. Introduction Languages Action Resources What is a programming language Definition A programming language is an artificial language designed to communicate instructions to a machine Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 4. Introduction Languages Action Resources Types 1 General purpose: C, C++, Java, etc Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 5. Introduction Languages Action Resources Types 1 General purpose: C, C++, Java, etc 2 Specific language: VHDL Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 6. Introduction Languages Action Resources Types 1 General purpose: C, C++, Java, etc 2 Specific language: VHDL 3 Others: Artistic, etc Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 7. Introduction Mercury Languages JavaFX Action Piet Resources GO Mercury Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 8. Introduction Mercury Languages JavaFX Action Piet Resources GO Introduction Designed and implemented by a small group of researchers at the University of Melbourne (Australia) between this group there are: Fergus Henderson, Thomas Conway, etc. Based on the paradigm of purely declarative programming, and was designed to be useful for the development of large and robust “real-world” applications. It improves on existing logic programming languages by providing increased productivity, reliability and efficiency, and by avoiding the need for non-logical program constructs. Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 9. Introduction Mercury Languages JavaFX Action Piet Resources GO Introduction This language differentiates of the rest by the concept to program. Why? Because is a logical programming and the syntax is similar to Prolog, with some additional declarations for types, modes, determinism, the module system, and pragmas, and with the distinction that function symbols may stand also for invocations of user- defined functions as well as for data constructors. Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 10. Introduction Mercury Languages JavaFX Action Piet Resources GO Syntax Mercury have a syntax similar to Pascal but this language use terms like: Tokens Predicates because is a logical programming language and is: A strongly typed language: :− t y p e l i s t (T) −−−> [ ] ; [ T | l i s t (T ) ] . A strongly moded language: :− mode append ( i n , i n , o u t ) . Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 11. Introduction Mercury Languages JavaFX Action Piet Resources GO Developing an app In other Workshop Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 12. Introduction Mercury Languages JavaFX Action Piet Resources GO Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 13. Introduction Mercury Languages JavaFX Action Piet Resources GO Introduction JavaFX is a language that is oriented to create RIA app’s (RIA = Rich Internet Application) and this app’s integrate the simplicity of a web app and the potentially of a desktop app. JavaFX include various technologys like JavaFX Script, JavaFX Mobile, and JavaFX TV. We are going to see JavaFX Script, apart of to be a scripting language is a language to desing User Interfaces, so have the powerfull of a script with the design of interfaces in graphic mode. Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 14. Introduction Mercury Languages JavaFX Action Piet Resources GO Developing an app In other Workshop - Maybe later there will be a demo. Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 15. Introduction Mercury Languages JavaFX Action Piet Resources GO Piet Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 16. Introduction Mercury Languages JavaFX Action Piet Resources GO Introduction Piet (named after painter Piet Mondrian) is one of the most known esoteric programming languages, which uses images as source code. The language uses 20 colors, and the commands are encoded as changes of color between adjacent pixels. Piet was created by David Morgan-Mar, who aimed for a language which would have its code look like abstract art. The language hasn’t spawned any dialects; there are several implementations, which differ slightly, mainly in the way the colors are processed. Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 17. Introduction Mercury Languages JavaFX Action Piet Resources GO Developing an app In other Workshop - Maybe later there will be some examples. Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 18. Introduction Mercury Languages JavaFX Action Piet Resources GO GO Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 19. Introduction Mercury Languages JavaFX Action Piet Resources GO Introduction GO was designed by Ken Thompson, Rob Pike, Robert Griesemer + Contributors + Open Source comunity. Features: General purpose Concise syntax Expressive type system Concurrency Garbage collection Fast compilation Efficient execution Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 20. Introduction Mercury Languages JavaFX Action Piet Resources GO Introduction Combines the powerfull and safety of a statically typed compiled language with the the expressiveness and convenience of a dynamically typed interpreted language. Designed as a systems language (for develop app like: Web Servers, Browsers, etc). Influenced by other languages: C, Modula, Pascal, Python, etc. Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 21. Introduction Mercury Languages JavaFX Action Piet Resources GO Syntax Comments /∗ T h i s i s a comment ; no n e s t i n g ∗/ // So i s t h i s . Structs type Point s t r u c t { x , y f l o a t } f u n c ( p P o i n t ) Abs ( ) f l o a t { r e t u r n math . S q r t ( p . x ∗p . x + p . y ∗p . y ) } Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 22. Introduction Mercury Languages JavaFX Action Piet Resources GO Syntax Methods type Vector [ ] f l o a t f u n c ( v V e c t o r ) Abs ( ) f l o a t { sumOfSquares := 0 . 0 f o r i := r a n g e v { sumOfSquares += v [ i ] ∗ v [ i ] } r e t u r n math . S q r t ( sumOfSquares ) } Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 23. Introduction Mercury Languages JavaFX Action Piet Resources GO Syntax Interfaces type Abser i n t e r f a c e { Abs ( ) f l o a t } var a Abser a = P o i n t { 3 , 4} p r i n t ( a . Abs ( ) ) a = V e c t o r { 1 , 2 , 3 , 4} p r i n t ( a . Abs ( ) ) Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 24. Introduction Mercury Languages JavaFX Action Piet Resources GO Syntax Visibility ThisNameIsPublic thisOneIsNot Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 25. Introduction Mercury Languages JavaFX Action Piet Resources GO Developing an app 1st Step - Install the environment Install C tools: sudo apt−g e t i n s t a l l b i s o n gawk g c c l i b c 6 −dev make Install mercurial: sudo e a s y i n s t a l l m e r c u r i a l Fetch the repository: hg c l o n e −u r e l e a s e h t t p s : // go . g o o g l e c o d e . com/ hg / go Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 26. Introduction Mercury Languages JavaFX Action Piet Resources GO Developing an app 1st Step - Install the environment Install the environment: sudo mv go / / u s r / l o c a l / cd / u s r / l o c a l / go / s r c . / a l l . bash See bash and GO documentation to set up GO Path in the environment. Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 27. Introduction Mercury Languages JavaFX Action Piet Resources GO Developing an app 1st Step - Install the environment Fetch last version: cd go / s r c hg p u l l hg u p d a t e r e l e a s e . / a l l . bash Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 28. Introduction Mercury Languages JavaFX Action Piet Resources GO Developing an app 2nd Step - Code We can code the easiest example at last version: “Hello world” 2.0 :) p a c k a g e main i m p o r t ” fmt ” f u n c main ( ) { fmt . P r i n t f ( ” H e l l o w o r l d 2 . 0 n” ) } Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 29. Introduction Mercury Languages JavaFX Action Piet Resources GO Developing an app 3rd Step - Compile and test Compile: 6g h e l l o w o r l d . go Link: 6 l helloworld .6 Test: . / 6 . out Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 30. Introduction Languages Action Resources Demos DEMO! Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 31. Introduction Languages Action Resources Resources Go Website Go Lang Youtube channel Google Developers Mercury Website JavaFX Website Piet Website Seraf´ V´lez Barrera ın e Alternative Programming Languages
  • 32. Introduction Languages Action Resources License This document have the following license: Seraf´ V´lez Barrera – Oficina de Software Libre ın e serafin.velez.barrera@gmail.com Seraf´ V´lez Barrera ın e Alternative Programming Languages