Download Programming Languages and Frameworks Overview

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
O.Widder.(2013).geek&poke.Available:http://geek-and-poke.com
Programming
Languages
&Frameworks
Hans-PetterHalvorsen,M.Sc.
Implementation
Planning
Maintenance
Testing
TheSoftware
Development
Lifecycle
Implementation
Design
Requirements
Analysis
Java
C#
Perl
Ruby
Python
MATLAB
C/C++
Visual
Basic
PHP
LabVIEW
Objective-C
Swift
http://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/
PopularProgrammingLanguages
1JavaScript
2Java
3PHP
4Python
5C#
5C++
5Ruby
8CSS
9C
10Objective-C
Top20
11Perl
11Shell
13R
14Scala
15Haskell
16Matlab
17Go
17VisualBasic
19Clojure
19Groovy
http://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/
OOP
• OOP– ObjectOrientedProgramming
• Object-oriented programming(OOP)isaprogramming
languagemodelorganizedaround"objects"ratherthan
"actions"anddataratherthanlogic.
• ThefirststepinOOPistoidentifyalltheobjectsyouwant
tomanipulateandhowtheyrelatetoeachother,an
exerciseoftenknownasdatamodeling(UML,Class
Diagrams)
• Onceyou'veidentifiedanobject,yougeneralizeitasa
Class
• Arealinstanceofaclassiscalledan“object”oran
“instanceofaclass”.
OOP
• ImportantfeatureswithOOPare:
–
–
–
–
ClassesandObjects
Inheritance
Polymorphism
Encapsulation
• Java,Python,C++,VisualBasic.NETandC#arepopularOOP
languagestoday.
• Simula wasthefirstobject-oriented programminglanguage.
– Simulawasdevelopedinthe1960sbyKristenNygaardfrom
Norway(UniversityofOslo).
– SinceSimula-typeobjectsarereimplementedinC++,Javaand
C#theinfluenceofSimulaisoftenunderstated.Thecreatorof
C++(1979),BjarneStroustrup(fromDenmark),has
acknowledgedthatSimulawasthegreatestinfluenceonhimto
developC++.
ProgrammingLanguages
&Frameworks
ProgrammingLanguages
•
•
•
•
•
•
•
•
•
•
•
C,C++
Java
C#
Objective-C
Swift
VisualBasic,VB.NET
Perl
Python
PHP
JavaScript
…
• MATLAB
• LabVIEW
• …
IntegratedDevelopmentEnvironment
(IDE)
• ProgrammmingLanguagesvs.IDE
• OneIDEcanhandlemultipleLanguages
• C#
• Java
• Objective-C/Swift
• LabVIEW
• VisualStudio
• Eclipse
• Xcode
• LabVIEW
.NETvs.Java
http://www.youtube.com/watch?v=8Px-GHPxB4I
Java
http://www.youtube.com/watch?feature=endscreen&NR=1&v=HXvm76e2X1Q
ProgrammingLanguages
Hans-PetterHalvorsen,M.Sc.
IDE
C
C#
C++
JavaScript
J#
F#
VB.NET
TheVisualStudioIDEisactuallywritteniC++/C#
C
• Cisageneral-purposecomputerprogramming
languagedevelopedbetween1969and1973by
DennisRitchieattheBellTelephoneLaboratoriesfor
usewiththeUnixoperatingsystem.
• Cisoneofthemostpopularprogramminglanguages
ofalltimeandthereareveryfewcomputer
architecturesforwhichaCcompilerdoesnotexist.
• Chasgreatlyinfluencedmanyotherpopular
programminglanguages,mostnotablyC++,which
beganasanextensiontoC.
• Cisaprocedurallanguage,i.e.noobject-oriented
programming.Cisacompiledlanguage.
C++
• C++isacompiled,general-purposeobject-oriented
programminglanguage.Itisregardedasanintermediatelevellanguage,asitcomprisesacombinationofbothhighlevelandlow-levellanguagefeatures.
• ItwasdevelopedbyBjarneStroustrupin1979asan
extensiontoC.
• C++isoneofthemostpopularprogramminglanguages
anditsapplicationdomainsincludesystemssoftware
(suchasMicrosoftWindows),applicationsoftware,device
drivers,embeddedsoftware,high-performance serverand
clientapplications,andentertainmentsoftwaresuchas
videogames.
• SeveralgroupsprovidebothfreeandproprietaryC++
compilersoftware.
C++
http://www.digi.no/932591/c-oppfinneren-tildelt-norsk-it-pris
C#
•
•
•
•
•
•
•
•
C#ispronounced“seesharp”.
C#isanobject-orientedprogramminglanguageandpartofthe.NETfamilyfrom
Microsoft.
ThemostrecentversionisC#4.5.1anditispartofVisualStudio2013.
C#isintendedtobeasimple,modern,general-purpose,object-oriented
programminglanguage.ItsdevelopmentteamisledbyAndersHejlsberg.
C#isverysimilartoC++andJava.C#isdevelopedbyMicrosoftandworksonlyon
theWindowsplatform.
C#isbasedonthe.NETFramework(pronounced“dotnet”).
.NETisasoftwareframeworkthatrunsprimarilyonMicrosoftWindows.
The
.NETFramework1.0andC#1.0wasreleasedin2002aspartofVisualStudio.NET
2002.
VisualStudioistheIntegratedDevelopmentEnvironment(IDE)youusewhen
programminginC#andthe.NETplatform.
Objective-C
Swift
• Objective-Cisageneral-purpose,high-level,objectorientedprogramminglanguagethatisbasedonthe
Cprogramminglanguage.
• ItisthemainprogramminglanguageusedbyApple
fortheOSXandiOSandtheirrespectiveAPIs,Cocoa
andCocoaTouch.Applehavereleasedanew
ProgramminglanguagecalledSwiftthatisthenew
recommendedlanguageforiOS/OSXDevelopment
• Originallydevelopedintheearly1980s,itwas
selectedasthemainlanguageusedbyNeXTforits
NeXTSTEPoperatingsystem,fromwhichOSXand
iOSarederived.
Java
• Javaiscurrentlyoneofthemostpopular
programminglanguagesinuse,andis
widelyusedfromapplicationsoftwareto
webapplications.
• Javaapplicationsaretypicallycompiled
anditrunsonanyJavaVirtualMachine
(JVM)regardlessofthecomputer
architecture.
• Javaisageneral-purposeobjectoriented.Itisintendedtoletapplication
developers“writeonce,runanywhere”.
• AcommonIDEforprogrammingwith
JavaistheEclipseIDE.
• JavaandEclipseareusedtocreate
AndroidApps.
PHP
• PHPisaserver-sidescriptinglanguagedesignedfor
webdevelopmentbutalsousedasageneralpurposeprogramminglanguage.
• PHPcodeisembeddedintotheHTMLsource
documentandinterpretedbyawebserverwhich
generatesthewebpagedocument.
• PHPisnowinstalledonmorethan244million
websitesand2.1millionwebservers,e.g.,
Facebook.com
• PHPcanbedeployedonmostwebserversandasa
standaloneinterpreter,onalmosteveryoperating
systemandplatformfreeofcharge.
http://www.digi.no/for_utviklere/2015/06/13/feiret-20-ar-med-php-basert-webutvikling
Frameworks
Hans-PetterHalvorsen,M.Sc.
Programming/SoftwareFramework
Softwareframeworksincludesupport
programs,compilers,codelibraries,toolsets,
andapplicationprogramminginterfaces(APIs)
• Frameworksmakesiteasiertocreate
Software
• Youcancreateyousoftwareusing
existingFrameworks
• Ifyouarecreatinglargesoftware
systems,youshouldinaddition
createyourownFrameworks(code
reuse,moremodular,etc.)
Framework
Tools
Libraries
APIs
ProgrammingLanguage
Programming/SoftwareFramework
• .NETFramework
• ASP.NET (partof.NET)– usedforWeb
Development
• ASP.NETAJAX
• RubyonRails(WebApplicationFrameworkfor
theRubyProgrammingLanguage)
• CocoaFramework(MacOSX,iOS)
• ...
• ...hundreds
.NETFramework
• AProgramming
FrameworkfromMicrosoft
• C#,VB.NET,VisualStudio
• CLR(CommonLanguage
Runtime)
• Released2002
.NETFramework
• The.NETFramework(pronounced“dotnet”)isasoftware
frameworkthatrunsprimarilyonMicrosoftWindows.
• Itincludesalargelibraryandsupportsseveralprogramming
languageswhichallowlanguageinteroperability(each
languagecanusecodewritteninotherlanguages).
• The.NETlibraryisavailabletoalltheprogramminglanguages
that.NETsupports.
• Programswrittenforthe.NETFrameworkexecuteina
softwareenvironment,knownastheCommonLanguage
Runtime(CLR),anapplicationvirtualmachinethatprovides
importantservicessuchassecurity,memorymanagement,and
exceptionhandling.
• TheclasslibraryandtheCLRtogetherconstitutethe.NET
Framework.
• Thelatestversionof.NETFrameworkis.NETFramework4.5.1
(includedwithVisualStudio2015)
.NETFramework
Wikipedia.(2013)..NETFramework.
Available:
http://en.wikipedia.org/wiki/.NET_Framework
ASP.NET
• ASP.NETisaserver-sideWebapplicationframework
designedforWebdevelopmenttoproducedynamic
Webpages.
• ItwasdevelopedbyMicrosofttoallowprogrammers
tobuilddynamicwebsites,webapplicationsandweb
services.
• ItwasfirstreleasedinJanuary2002withversion1.0of
the.NETFramework,andisthesuccessorto
Microsoft'sActiveServer Pages(ASP)technology.
• ASP.NETisbuiltontheCommonLanguageRuntime
(CLR),allowingprogrammerstowriteASP.NETcode
usinganysupported.NETlanguage.
Wikipedia. (2013).ASP.NET.Available:http://en.wikipedia.org/wiki/ASP.NET
ASP.NET
ASP.NETisusedtocreate
dynamicwebpages
Client
WebBrowser
HTML
JavaScript
CSS
Theserver-side ASP.NETpagesareconvertedonthe
servertoHTMLpagesbeforeitissenttotheclient
Server-side
WebServer
ASP.NET
C#/VB.NET
.NETFramework
ASP.NET– Differentwaysofcreating
WebSiteswithASP.NET
WebSites
ASP.NET
WebPages
ASP.NET
WebForms
ASP.NET
C#/VB.NET
.NETFramework
http://www.asp.net
ASP.NET
MVC
Youcanuse(atleast)3different
approacheswhencreatingWeb
SiteswithASP.NET
Exercise– Programming
• ListtheProgramminglangaugesand
frameworksyouhavebeenusing
• Whathaveyouusedthemfor?
Summary
33
References
• Wikipedia.(2013)..NETFramework.Available:
http://en.wikipedia.org/wiki/.NET_Framework
• Wikipedia.(2013).ASP.NET.Available:
http://en.wikipedia.org/wiki/ASP.NET
• I.Sommerville,SoftwareEngineering:Pearson,2010.
• S.Adams.Dilbert.Available:http://dilbert.com
• O.Widder.(2013).geek&poke. Available:http://geek-andpoke.com
• B.Lund.(2013).Lunch.Available:http://www.lunchstriper.no,
http://www.dagbladet.no/tegneserie/lunch/
Hans-PetterHalvorsen,M.Sc.
UniversityCollegeofSoutheastNorway
www.usn.no
E-mail:[email protected]
Blog:http://home.hit.no/~hansha/