Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Vaclav Pech on MPS
Search
Enterprise Java User Group Austria
March 05, 2013
Technology
0
48
Vaclav Pech on MPS
Enterprise Java User Group Austria
March 05, 2013
Tweet
Share
More Decks by Enterprise Java User Group Austria
See All by Enterprise Java User Group Austria
Gerrit Grunwald on What the CRaC... SUPERFAST JVM STARTUP
ejug
1
71
Spring Framework 5.2 - Core Container Revisited
ejug
0
110
Andreas Caternberg on Jenkins Pipelines
ejug
0
460
Martin Ahrer on Continuous Delivery Infrastructure With Docker
ejug
0
110
Dirk Mahler on Software Analyse mit jQAssistant & Neo4j
ejug
0
200
Christoph Strobl on Spring Data & Hypermedia
ejug
0
79
Stefan Armbruster on Graph Modelling Antipatterns
ejug
0
85
Stefan Armbruster on Introduction into Neo4J
ejug
0
66
Michael Nitschinger on Building a reactive Couchbase driver for the JVM
ejug
0
98
Other Decks in Technology
See All in Technology
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
190
Terraform Stacks入門 #HashiTalks
msato
0
350
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
110
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
130
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
430
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
170
Application Development WG Intro at AppDeveloperCon
salaboy
0
190
SSMRunbook作成の勘所_20241120
koichiotomo
2
130
Platform Engineering for Software Developers and Architects
syntasso
1
520
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
410
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
334
57k
Gamification - CAS2011
davidbonilla
80
5k
A Tale of Four Properties
chriscoyier
156
23k
Thoughts on Productivity
jonyablonski
67
4.3k
Fireside Chat
paigeccino
34
3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
Documentation Writing (for coders)
carmenintech
65
4.4k
Statistics for Hackers
jakevdp
796
220k
The Pragmatic Product Professional
lauravandoore
31
6.3k
For a Future-Friendly Web
brad_frost
175
9.4k
Faster Mobile Websites
deanohume
305
30k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Transcript
MPS Are you talking my language? Václav Pech Developer /
Evangelist
Future
None
None
Science - Math, Biology, ...
Realaxy
High thoughts must have high language. Aristophanes
Grails Customer.findAllByNameAndAgeBetween('Joe', 20, 40) class Phone { .... static belongsTo
= [owner : Person] }
Cypher for Neo4j START john=node:node_auto_index(name = 'John') MATCH john-[:friend]->()-[:friend]->fof RETURN
john, fof http://docs.neo4j.org/chunked/milestone/cypher-query-lang.html
JMock context.checking(new Expectations() {{ oneOf (clock).time(); will(returnValue(loadTime)); oneOf (clock).time(); will(returnValue(fetchTime));
allowing (reloadPolicy).shouldReload(loadTime, fetchTime); will(returnValue(false)); }}); http://www.jmock.org/expectations.html
DSLs with the benefits of General Purpose Langs
Abstract Syntax Tree
Abstract Syntax Tree
Challenges The coding experience is different Cooperate with the existing
text tool-chain
Collections cities.where({~it => it.startsWith("P"); }) .select({~it => it.toUpperCase(); }) cities.any({~it
=> it.size() > populationLimit; })
Closures {int => long} fact = {int n => if
(n == 1) { return 1L; } else { return n * invoke(n - 1); } };
Date/Time datetime start = now in (Europe/Berlin); ...... period processingTime
= now in (Europe/Berlin) – start; datetime meeting = now in (GMT) + 2 days with (hours = 11) with (minutes = 0) with (seconds = 0)
And a lot more Tuples Regular expressions Builders XML processing
Unit testing Custom operators And others ...
Spock (Groovy) class DataDriven extends Specification { def "maximum of
two numbers"() { expect: Math.max(a, b) == c where: a | b | c 7 | 3 | 7 4 | 5 | 5 9 | 9 | 9 } } http://code.google.com/p/spock/
Mission Composable language extensions
Mission Composable language extensions Flexible DSLs
Flexible DSLs
Mission Composable language extensions Flexible DSLs Code Generation
Stacking generators Java source MPS BaseLang Closures Date/Time
Stacking generators Java source MPS BaseLang Closures Date/Time Unless
Stacking generators Java source MPS BaseLang Closures Date/Time Unless Atomic
None
mbeddr.com
Grasp the subject, the words will follow. Cato the Elder
Questions Want more? http://www.jetbrains.com/mps http://jetbrains.dzone.com
[email protected]
Image credits http://www.flickr.com/photos/horiavarlan/4329908160/sizes/m/in/photostream/ http://www.flickr.com/photos/pink_floyd/2409134519/sizes/m/in/photostream/ http://www.flickr.com/photos/atache/4124732863/sizes/m/in/photostream/ http://www.flickr.com/photos/a_ninjamonkey/3294014627/sizes/m/in/photostream/ http://www.flickr.com/photos/carlc/1968636137/ http://www.flickr.com/photos/tasuki/3503304405/sizes/m/in/photostream/ http://www.flickr.com/photos/bmwccgb/5069454884/sizes/m/in/photostream/ http://www.flickr.com/photos/rpmarks/3932013183/sizes/m/in/photostream/
http://www.flickr.com/photos/orqwith/4325166853/