SlideShare a Scribd company logo
The Dynamic Language
is not Enough
Lukas Renggli
Static Software
Static Software
Constant
Static Software
Constant
Fixed
Static Software
Constant
Fixed
Final
Dynamic Software
Dynamic Software
Adaptive
Dynamic Software
Adaptive
Extensible
Dynamic Software
Adaptive
Customizable
Extensible
Static
Language
Dynamic
Language
Static
Software
Dynamic
Software
:-(
Static
Language
Dynamic
Language
Static
Software
Dynamic
Software
:-(
:-|
Static
Language
Dynamic
Language
Static
Software
Dynamic
Software
:-|
Static
Language
Dynamic
Software
:-|
Static
Language
Dynamic
Software
:-(
:-|
Static
Language
Dynamic
Language
Static
Software
Dynamic
Software
:-(
:-|
:-S
Static
Language
Dynamic
Language
Static
Software
Dynamic
Software
:-S
Dynamic
Language
Static
Software
no support
easier
can always get
away with reflection
faster
don’t knowhow to do it
too complex
out-of-the-box
:-(
:-|
:-S
:-)
Static
Language
Dynamic
Language
Static
Software
Dynamic
Software
:-)
Dynamic
Language
Dynamic
Software
1
Subclassing
2
Extending
3
Meta-Modeling
4
Meta Meta-Modeling
5
Composing
6
Transforming
Subclassing
2
Extending
3
Meta-Modeling
4
Meta Meta-Modeling
5
Composing
6
Transforming
Subclassing Extending
3
Meta-Modeling
4
Meta Meta-Modeling
5
Composing
6
Transforming
Subclassing Extending
Meta-Modeling
4
Meta Meta-Modeling
5
Composing
6
Transforming
Subclassing Extending
Meta-Modeling Meta Meta-Modeling
5
Composing
6
Transforming
Subclassing Extending
Meta-Modeling Meta Meta-Modeling
Composing
6
Transforming
Subclassing Extending
Meta-Modeling Meta Meta-Modeling
Composing Transforming
He vetia
Subclassing
The framework for developing
sophisticated web applications
in Smalltalk
Add new functionality by
adding a new subclass.
WAComponent
renderContentOn:
WAComponent
renderContentOn:
MyComponent
renderContentOn:
Template Method
Extensible
Customizable
Adaptable
WAToolPlugin
label
execute
WANewSession... WATiming...
WAToolPlugin
label
execute
...
WAToolPlugin
label
execute
allPlugins
self	
  allSubclasses
collect:	
  [	
  :each	
  |	
  each	
  new	
  ]
WAHaloPlugin
label
execute
allPlugins
self	
  allSubclasses
collect:	
  [	
  :each	
  |	
  each	
  new	
  ]
Discussion
‣ Template Method Pattern
‣ Simple
‣ Lightweight
‣ Portable
‣ No extra infrastructure
Other Users
‣ Monticello Repository Types
‣ OmniBrowser Commands
‣ Code Critics Rules
‣ TextLint Rules (later today)
‣ Pier Commands, Views, Structures
‣ Magritte Description Types
Extending
Add new functionality by
adding a new method.
menuCommandOn:	
  aBuilder
	
   <worldMenu>
	
   (aBuilder	
  item:	
  'Shout	
  Workspace')
	
   	
   parent:	
  #Tools;
	
   	
   action:	
  [	
  self	
  open	
  ]
menuCommandOn:	
  aBuilder
	
   <worldMenu>
	
   (aBuilder	
  item:	
  'Shout	
  Workspace')
	
   	
   parent:	
  #Tools;
	
   	
   action:	
  [	
  self	
  open	
  ]
PragmaCollector	
  allSystemPragmas
	
  	
  	
  select:	
  [	
  :each	
  |	
  each	
  keyword	
  =	
  #worldMenu	
  ]
}
Discussion
‣ Simple
‣ Lightweight
‣ Long utility methods
‣ Encourages class-extensions
Alternatives to Pragmas
‣ Naming convention for selector names
‣ Naming convention for protocol names
‣ All methods of a specific class
Other Users
‣ Pier Value Links
‣ Pharo Compiler Primitives, System
Settings
‣ OmniBrowser Commands, Obsolete
Commands, and Browser Meta-Model
Meta-Modeling
Create a first-class
description of the domain.
Environment
Environment Category
Environment Category
Environment
Class
Comment
Metaclass
Category
Environment
Class
Comment
Metaclass
Protocol
Category
AllProtocol
Environment
Class
Comment
Metaclass
Protocol
MethodCategory
AllProtocol
OB-Web
OB-Mars
Discussion
‣ UI independent
‣ Domain-specific reflection
‣ Extensible using subclassing/extending
‣ Can cause meta-confusion
‣ Can be limiting or slow
Other Users
‣ GLORP Relational Object Mapping
‣ Glamour Browser Model
‣ Monticello Code Model
‣ Announcement Event Model
‣ Magritte Meta-Model
Meta Meta-Modeling
Create a first-class
description of the
description of the
domain.
Address Object
street = 'Schützenmattstrasse'
plz = 3012
place = 'Bern'
canton = 'Bern'
:Address
Address Description
street = 'Schützenmattstrasse'
plz = 3012
place = 'Bern'
canton = 'Bern'
:Address
label = 'Street'
:StringDescription
label = 'PLZ'
required = true
range = 1000..9999
:NumberDescription
label = 'Place'
required = true
:StringDescription
label = 'Canton'
required = true
sorted = true
options = #( 'Bern' 'Zurich' ... )
:SingleOptionDescription
label = 'Address'
:Containerdescription
result	
  :=	
  anAddress	
  asMorph
	
   addButtons;
	
   addWindow;
	
   callInWorld
Morphic Interpreter
result	
  :=	
  self	
  call:	
  (anAddress	
  asComponent
	
   addValidatedForm;
	
   yourself).
Seaside Interpreter
*
*
*
Other “Interpreters”
‣ Viewer building
‣ Editor building
‣ Report building
‣ Documentation
‣ Data validation
‣ Query processing
‣ Object filtering
‣ Object serialization
‣ Object copying
‣ Object indexing
‣ Object initialization
‣ Object extension
‣ Object adaption
‣ Object customization
and much more ...
Domain Model
Metamodel
Meta-
Metamodel
<described-by>
<described-by>
Developer
End User
Domain Model
Metamodel
Meta-
Metamodel
Magritte
Developer
<described-by>
<described-by>
Magritte
End User
Object
Description
Type
Object
*
*
description
attributes
1 *
(b) Magritteonent Object
*
attributes
1 *
nent
erty
Object
Description
Type
Object
*
*
description
attributes
1 *
(b) Magritte
t Object
Description
Type
Object
*
*
description
attributes
1 *
(b) Magritte
Object
Description
Type
Object
*
*
description
attributes
1 *
(b) Magritteonent Object
*
attributes
1 *
nent
erty
Object
Description
Type
Object
*
*
description
attributes
1 *
(b) Magritte
t Object
Description
Type
Object
*
*
description
attributes
1 *
(b) Magritte
Object
Description
Type
Object
*
*
description
attributes
1 *
(b) Magritteonent Object
*
attributes
1 *
nent
erty
Object
Description
Type
Object
*
*
description
attributes
1 *
(b) Magritte
t Object
Description
Type
Object
*
*
description
attributes
1 *
(b) Magritte
Adaptive
Object Model
Run-time
End users
customizability
Demo
Discussion
‣ Very powerful and flexible
‣ Runtime adaptive code
‣ End-user programmable code
‣ Can cause meta meta-confusion
‣ Can be slow
Other Users
‣ Gjallar Issue Tracker
‣ DabbleDB Online Database
Composing
Build something new
by composing existing
parts.
scanIdentifier
	 self step.	
	 ((currentCharacter between: $A and: $Z) or:
[ currentCharacter between: $a and: $z ]) ifTrue: [
	 	 [ self recordMatch: #IDENTIFIER.
	 	 self step.
	 	 (currentCharacter between: $0 and: $9)
or: [ (currentCharacter between: $A and: $Z) or:
[ currentCharacter between: $a and: $z ] ] ]
		 	 	 whileTrue.
	 ^ self reportLastMatch ]
#(	#[1 0 9 0 25 0 13 0 34 0 17 0 40 0 21 0 41]
	 #[1 0 9 0 25 0 13 0 34 0 93 0 76 0 157 0 112]
	 #[1 2 38 0 21 2 38 0 25 2 38 0 26 0 13 0 34]
	 #[0 1 154 0 16 0 21 0 25 0 26 0 34 0 40 0 41]
	 #[0 1 210 0 76 0 81]
	 #[0 1 214 0 76 0 81]
	 #[1 0 173 0 76 0 177 0 81]
	 #[0 1 134 0 16 0 21 0 25 0 26 0 34 0 40 0 41]
	 #[1 1 46 0 21 1 46 0 25 1 46 0 26 1 69]

 #[1 1 54 0 21 1 54 0 25 1 54 0 26 1 54 0 34]

 #[0 2 102 0 21 0 25 0 26 0 34 0 40 0 41 0 76]
	 #[0 2 50 0 21 0 25 0 26 0 76 0 79]
	 #[1 1 13 0 76 2 85 0 124 1 21 0 125]
	 #[1 2 89 0 17 2 30 0 21 2 30 0 82]
	 #[1 2 93 0 21 2 97 0 82] )
Scannerless
Parser Combinator
a..z a..z
0..9
ID	
  ::=	
  letter	
  {	
  letter	
  |	
  digit	
  }	
  ;
letter
letter digit
sequence
choice
many
ID	
  ::=	
  letter	
  {	
  letter	
  |	
  digit	
  }	
  ;
letter
letter digit
sequence
choice
many
id	
  :=	
  #letter	
  ,	
  (#letter	
  /	
  #digit)	
  star
letter
letter digit
sequence
choice
many
id	
  :=	
  #letter	
  asParser	
  ,	
  (#letter	
  
asParser	
  /	
  #digit	
  asParser)	
  star
Smalltalk
+ SQL Language
+ Regular Expression
= Customized Smalltalk
Discussion
‣ The LEGO model
‣ New parts can be easily created
‣ Smalltalk provides elegant composition
with binary operators
Other Users
‣ Brazil Widgets in Newspeak
‣ Seaside and Pier Widgets
‣ Refactoring Engine Change Objects
Transforming
He vetia
Build something new
by transforming existing
parts.
Language
Scope
Language
Concern
Language
Change
Language
Box
Language Scope
Active?
Language Scope
‣ System
‣ Packages
‣ Classes
‣ Methods
Language Scope
Language Concern
Semantics
Language Concern
Transformation
Language Concern
Context Menus
Navigation Search
Code Expansion
Code Completion
Error Correction
Custom Inspector
Refactorings
Code Folding
Highlighting
Code Execution
Language Change
Syntax
Language Change
Smalltalk
Language Change
Smalltalk
+ SQL Language
Language Change
Smalltalk
+ SQL Language
+ Regular Expression
Smalltalk
+ SQL Language
+ Regular Expression
= Custom Host Language
Language Change
Demo
Discussion
‣ Very generic and powerful
‣ Usually requires extra infrastructure (for
example Helvetia)
‣ Might be difficult to learn and apply
Other Users
‣ Refactoring Engine Rewrite Rules
‣ Compiler Hacks (ok, not really)
‣ XML, XSD Transformations
‣ SOUL, IntensiVE
Anything Else?
‣ Subclassing
‣ Extending
‣ Meta-Modeling
‣ Meta Meta-Modeling
‣ Composing
‣ Transforming
}How to make “tools”
and “languages”
extensible?
How to make the “object
model” extensible?
Albedo
Jorge Ressia
Object
Class
Object
Structural
Meta-object
Class
Object
Structural
Meta-object
Class
Behavioral
Meta-object
:-(
:-|
:-S
:-)
Static
Language
Dynamic
Language
Static
Software
Dynamic
Software
:-)
lukas-renggli.ch
@renggli
Dynamic Software

More Related Content

Similar to The Dynamic Language is not Enough

Helvetia
HelvetiaHelvetia
Helvetia
ESUG
 
Spark Streaming with Cassandra
Spark Streaming with CassandraSpark Streaming with Cassandra
Spark Streaming with Cassandra
Jacek Lewandowski
 
MLflow with R
MLflow with RMLflow with R
MLflow with R
Databricks
 
Headless Js Testing
Headless Js TestingHeadless Js Testing
Headless Js Testing
Brian Moschel
 
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
Sang Don Kim
 
.NET Foundation, Future of .NET and C#
.NET Foundation, Future of .NET and C#.NET Foundation, Future of .NET and C#
.NET Foundation, Future of .NET and C#
Bertrand Le Roy
 
Building DSLs On CLR and DLR (Microsoft.NET)
Building DSLs On CLR and DLR (Microsoft.NET)Building DSLs On CLR and DLR (Microsoft.NET)
Building DSLs On CLR and DLR (Microsoft.NET)
Vitaly Baum
 
Beyond php it's not (just) about the code
Beyond php   it's not (just) about the codeBeyond php   it's not (just) about the code
Beyond php it's not (just) about the code
Wim Godden
 
Practical Models in Practice
Practical Models in PracticePractical Models in Practice
Practical Models in Practice
CHOOSE
 
The Art Of Readable Code
The Art Of Readable CodeThe Art Of Readable Code
The Art Of Readable Code
Baidu, Inc.
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
Wim Godden
 
Legacy is Good
Legacy is GoodLegacy is Good
Legacy is Good
Uberto Barbini
 
Odp
OdpOdp
Consequences of using the Copy-Paste method in C++ programming and how to dea...
Consequences of using the Copy-Paste method in C++ programming and how to dea...Consequences of using the Copy-Paste method in C++ programming and how to dea...
Consequences of using the Copy-Paste method in C++ programming and how to dea...
Andrey Karpov
 
PostgreSQL as seen by Rubyists (Kaigi on Rails 2022)
PostgreSQL as seen by Rubyists (Kaigi on Rails 2022)PostgreSQL as seen by Rubyists (Kaigi on Rails 2022)
PostgreSQL as seen by Rubyists (Kaigi on Rails 2022)
Андрей Новиков
 
Dynamic grammars
Dynamic grammarsDynamic grammars
Dynamic grammars
Lukas Renggli
 
Dynamic Language Performance
Dynamic Language PerformanceDynamic Language Performance
Dynamic Language Performance
Kevin Hazzard
 
Unit1 C
Unit1 CUnit1 C
Unit1 C
arnold 7490
 
Unit1 C
Unit1 CUnit1 C
Unit1 C
arnold 7490
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
Wim Godden
 

Similar to The Dynamic Language is not Enough (20)

Helvetia
HelvetiaHelvetia
Helvetia
 
Spark Streaming with Cassandra
Spark Streaming with CassandraSpark Streaming with Cassandra
Spark Streaming with Cassandra
 
MLflow with R
MLflow with RMLflow with R
MLflow with R
 
Headless Js Testing
Headless Js TestingHeadless Js Testing
Headless Js Testing
 
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
 
.NET Foundation, Future of .NET and C#
.NET Foundation, Future of .NET and C#.NET Foundation, Future of .NET and C#
.NET Foundation, Future of .NET and C#
 
Building DSLs On CLR and DLR (Microsoft.NET)
Building DSLs On CLR and DLR (Microsoft.NET)Building DSLs On CLR and DLR (Microsoft.NET)
Building DSLs On CLR and DLR (Microsoft.NET)
 
Beyond php it's not (just) about the code
Beyond php   it's not (just) about the codeBeyond php   it's not (just) about the code
Beyond php it's not (just) about the code
 
Practical Models in Practice
Practical Models in PracticePractical Models in Practice
Practical Models in Practice
 
The Art Of Readable Code
The Art Of Readable CodeThe Art Of Readable Code
The Art Of Readable Code
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Legacy is Good
Legacy is GoodLegacy is Good
Legacy is Good
 
Odp
OdpOdp
Odp
 
Consequences of using the Copy-Paste method in C++ programming and how to dea...
Consequences of using the Copy-Paste method in C++ programming and how to dea...Consequences of using the Copy-Paste method in C++ programming and how to dea...
Consequences of using the Copy-Paste method in C++ programming and how to dea...
 
PostgreSQL as seen by Rubyists (Kaigi on Rails 2022)
PostgreSQL as seen by Rubyists (Kaigi on Rails 2022)PostgreSQL as seen by Rubyists (Kaigi on Rails 2022)
PostgreSQL as seen by Rubyists (Kaigi on Rails 2022)
 
Dynamic grammars
Dynamic grammarsDynamic grammars
Dynamic grammars
 
Dynamic Language Performance
Dynamic Language PerformanceDynamic Language Performance
Dynamic Language Performance
 
Unit1 C
Unit1 CUnit1 C
Unit1 C
 
Unit1 C
Unit1 CUnit1 C
Unit1 C
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 

More from Lukas Renggli

Mastering Grammars with PetitParser
Mastering Grammars with PetitParserMastering Grammars with PetitParser
Mastering Grammars with PetitParser
Lukas Renggli
 
Natural Language Checking with Program Checking Tools
Natural Language Checking with Program Checking ToolsNatural Language Checking with Program Checking Tools
Natural Language Checking with Program Checking Tools
Lukas Renggli
 
Dynamic Language Embedding With Homogeneous Tool Support
Dynamic Language Embedding With Homogeneous Tool SupportDynamic Language Embedding With Homogeneous Tool Support
Dynamic Language Embedding With Homogeneous Tool Support
Lukas Renggli
 
Seaside — Agile Software Development
Seaside — Agile Software DevelopmentSeaside — Agile Software Development
Seaside — Agile Software Development
Lukas Renggli
 
Domain-Specific Program Checking
Domain-Specific Program CheckingDomain-Specific Program Checking
Domain-Specific Program Checking
Lukas Renggli
 
Embedding Languages Without Breaking Tools
Embedding Languages Without Breaking ToolsEmbedding Languages Without Breaking Tools
Embedding Languages Without Breaking Tools
Lukas Renggli
 
Language Boxes — Bending the Host Language with Modular Language Changes
Language Boxes — Bending the Host Language with Modular Language ChangesLanguage Boxes — Bending the Host Language with Modular Language Changes
Language Boxes — Bending the Host Language with Modular Language Changes
Lukas Renggli
 
jQuery for Seaside
jQuery for SeasidejQuery for Seaside
jQuery for Seaside
Lukas Renggli
 
Seaside Status Message
Seaside Status MessageSeaside Status Message
Seaside Status Message
Lukas Renggli
 
Seaside - The Revenge of Smalltalk
Seaside - The Revenge of SmalltalkSeaside - The Revenge of Smalltalk
Seaside - The Revenge of Smalltalk
Lukas Renggli
 
Magritte Blitz
Magritte BlitzMagritte Blitz
Magritte Blitz
Lukas Renggli
 
Seaside - On not getting bogged down
Seaside - On not getting bogged downSeaside - On not getting bogged down
Seaside - On not getting bogged down
Lukas Renggli
 
Magritte
MagritteMagritte
Magritte
Lukas Renggli
 
Seaside - Past, Present and Future
Seaside - Past, Present and FutureSeaside - Past, Present and Future
Seaside - Past, Present and Future
Lukas Renggli
 
Magritte - A Meta-Driven Approach to Empower Developers and End Users
Magritte - A Meta-Driven Approach to Empower Developers and End UsersMagritte - A Meta-Driven Approach to Empower Developers and End Users
Magritte - A Meta-Driven Approach to Empower Developers and End Users
Lukas Renggli
 
Transactional Memory for Smalltalk
Transactional Memory for SmalltalkTransactional Memory for Smalltalk
Transactional Memory for Smalltalk
Lukas Renggli
 
Seaside - Web Development As You Like It
Seaside - Web Development As You Like ItSeaside - Web Development As You Like It
Seaside - Web Development As You Like It
Lukas Renggli
 
5 Steps to Mastering the Art of Seaside
5 Steps to Mastering the Art of Seaside5 Steps to Mastering the Art of Seaside
5 Steps to Mastering the Art of Seaside
Lukas Renggli
 

More from Lukas Renggli (18)

Mastering Grammars with PetitParser
Mastering Grammars with PetitParserMastering Grammars with PetitParser
Mastering Grammars with PetitParser
 
Natural Language Checking with Program Checking Tools
Natural Language Checking with Program Checking ToolsNatural Language Checking with Program Checking Tools
Natural Language Checking with Program Checking Tools
 
Dynamic Language Embedding With Homogeneous Tool Support
Dynamic Language Embedding With Homogeneous Tool SupportDynamic Language Embedding With Homogeneous Tool Support
Dynamic Language Embedding With Homogeneous Tool Support
 
Seaside — Agile Software Development
Seaside — Agile Software DevelopmentSeaside — Agile Software Development
Seaside — Agile Software Development
 
Domain-Specific Program Checking
Domain-Specific Program CheckingDomain-Specific Program Checking
Domain-Specific Program Checking
 
Embedding Languages Without Breaking Tools
Embedding Languages Without Breaking ToolsEmbedding Languages Without Breaking Tools
Embedding Languages Without Breaking Tools
 
Language Boxes — Bending the Host Language with Modular Language Changes
Language Boxes — Bending the Host Language with Modular Language ChangesLanguage Boxes — Bending the Host Language with Modular Language Changes
Language Boxes — Bending the Host Language with Modular Language Changes
 
jQuery for Seaside
jQuery for SeasidejQuery for Seaside
jQuery for Seaside
 
Seaside Status Message
Seaside Status MessageSeaside Status Message
Seaside Status Message
 
Seaside - The Revenge of Smalltalk
Seaside - The Revenge of SmalltalkSeaside - The Revenge of Smalltalk
Seaside - The Revenge of Smalltalk
 
Magritte Blitz
Magritte BlitzMagritte Blitz
Magritte Blitz
 
Seaside - On not getting bogged down
Seaside - On not getting bogged downSeaside - On not getting bogged down
Seaside - On not getting bogged down
 
Magritte
MagritteMagritte
Magritte
 
Seaside - Past, Present and Future
Seaside - Past, Present and FutureSeaside - Past, Present and Future
Seaside - Past, Present and Future
 
Magritte - A Meta-Driven Approach to Empower Developers and End Users
Magritte - A Meta-Driven Approach to Empower Developers and End UsersMagritte - A Meta-Driven Approach to Empower Developers and End Users
Magritte - A Meta-Driven Approach to Empower Developers and End Users
 
Transactional Memory for Smalltalk
Transactional Memory for SmalltalkTransactional Memory for Smalltalk
Transactional Memory for Smalltalk
 
Seaside - Web Development As You Like It
Seaside - Web Development As You Like ItSeaside - Web Development As You Like It
Seaside - Web Development As You Like It
 
5 Steps to Mastering the Art of Seaside
5 Steps to Mastering the Art of Seaside5 Steps to Mastering the Art of Seaside
5 Steps to Mastering the Art of Seaside
 

Recently uploaded

Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
Javier Junquera
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 

Recently uploaded (20)

Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 

The Dynamic Language is not Enough