SlideShare a Scribd company logo
 
Server Applications “Server Applications” =  programs with no GUI In GNUstep, server applications are based on  GNUstep-base.   GNUstep-base is the most complete and  extensively polished and tested part  of GNUstep ... …  but is  little known to the public. People often identify GNUstep only with the GUI framework/development environment.
Objective-C it is a  programming language
it is a strict  superset of C it  is  C with some new additional constructs
C code compiles as Objective-C code
C libraries can be linked and used natively from Objective-C it  adds Object-Oriented features to C Defining classes
Implementing methods
Instantiating classes and objects
Invoking class and object methods
Protocols, categories, selectors, forwarding
Why is Objective-C so special ? It is compatible with C libraries
Is is a simple extension of C
It is a  hybrid  between C and Smalltalk It can be  as fast as raw C  if you avoid the object-oriented extensions
It can be  as high-level and flexible as Smalltalk  if you use the object-oriented extensions
It allows experienced programmers to mix different programming styles in the same program It is  extremely flexible
Powerful “ Foundation ” class library
Why use Objective-C for Server Applications ? Very fast.   You can freely mix it with C and even assembler if you need.
High-level language.  Organize your server code using high-level, object-orientated design patterns.
Powerful Foundation library  (GNUstep-base).  The API originates from OpenStep and the implementation has been polished for 13+ years.
OpenStep API - Foundation Kit (1994) Foundation Kit Non-graphical classes Root classes : NSObject, NSProxy
Basic data classes : NSString, NSNumber, NSData, NSNull
Collection classes : NSArray, NSDictionary, NSSet
Execution control classes : NSRunLoop, NSTimer, NSThread, NSLock
I/O classes : NSTask, NSFileHandle
Notification classes:  NSNotification, NSDistributedNotification
Serialization classes:  NSArchiver, NSCoder
Resource management classes:  NSBundle, NSUserDefaults
Distributed Objects Classes:  NSConnection, NSPort
And many more... Application Foundation Kit Application Kit Operating System OS Graphical System Objective-C Runtime
GNUstep-base Application GNUstep Base GNUstep GUI Operating System (Any!) Graphical System  (Any!) GNU Objective-C  Runtime GNUstep Back
Server Applications – what do you need ? gcc-objc Objective-C compiler
Objective-C runtime gnustep-make Official GNUstep Building System
Makefile library that automatically takes care of configuring and building on different platforms gnustep-base OpenStep Foundation Kit implementation
Ad

Recommended

Debugging Python with gdb
Debugging Python with gdb
Roman Podoliaka
 
Large-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 Minutes
Hiroshi SHIBATA
 
JRuby with Java Code in Data Processing World
JRuby with Java Code in Data Processing World
SATOSHI TAGOMORI
 
How DSL works on Ruby
How DSL works on Ruby
Hiroshi SHIBATA
 
parenscript-tutorial
parenscript-tutorial
tutorialsruby
 
NovaProva, a new generation unit test framework for C programs
NovaProva, a new generation unit test framework for C programs
Greg Banks
 
The Parenscript Common Lisp to JavaScript compiler
The Parenscript Common Lisp to JavaScript compiler
Vladimir Sedach
 
The details of CI/CD environment for Ruby
The details of CI/CD environment for Ruby
Hiroshi SHIBATA
 
Os Lamothe
Os Lamothe
oscon2007
 
Overlay & Libraries | Pebble Meetup Oct. 2014
Overlay & Libraries | Pebble Meetup Oct. 2014
Pebble Technology
 
E bpf and dynamic tracing for mariadb db as (mariadb day during fosdem 2020)
E bpf and dynamic tracing for mariadb db as (mariadb day during fosdem 2020)
Valeriy Kravchuk
 
Avro - More Than Just a Serialization Framework - CHUG - 20120416
Avro - More Than Just a Serialization Framework - CHUG - 20120416
Chicago Hadoop Users Group
 
Hijacking Ruby Syntax in Ruby (RubyConf 2018)
Hijacking Ruby Syntax in Ruby (RubyConf 2018)
SATOSHI TAGOMORI
 
Apache Thrift
Apache Thrift
knight1128
 
Java Hates Linux. Deal With It.
Java Hates Linux. Deal With It.
Greg Banks
 
Fluentd at HKOScon
Fluentd at HKOScon
N Masahiro
 
Effizientere WordPress-Plugin-Entwicklung mit Softwaretests
Effizientere WordPress-Plugin-Entwicklung mit Softwaretests
DECK36
 
Middleware as Code with mruby
Middleware as Code with mruby
Hiroshi SHIBATA
 
Golang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war story
Aerospike
 
System Programming and Administration
System Programming and Administration
Krasimir Berov (Красимир Беров)
 
Installing & Configuring OpenLDAP (Hands On Lab)
Installing & Configuring OpenLDAP (Hands On Lab)
Michael Lamont
 
Ninja Build: Simple Guide for Beginners
Ninja Build: Simple Guide for Beginners
Chang W. Doh
 
Fluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshell
N Masahiro
 
G rpc lection1
G rpc lection1
eleksdev
 
Modern Black Mages Fighting in the Real World
Modern Black Mages Fighting in the Real World
SATOSHI TAGOMORI
 
Lua vs python
Lua vs python
HoChul Shin
 
Node.js essentials
Node.js essentials
Bedis ElAchèche
 
StrongSteam AI at HackerNews London October 2011
StrongSteam AI at HackerNews London October 2011
Ian Ozsvald
 
لوحة الجيوب
لوحة الجيوب
boba56222
 
Boomers to Millennials
Boomers to Millennials
John M Olson, CLTC
 

More Related Content

What's hot (19)

Os Lamothe
Os Lamothe
oscon2007
 
Overlay & Libraries | Pebble Meetup Oct. 2014
Overlay & Libraries | Pebble Meetup Oct. 2014
Pebble Technology
 
E bpf and dynamic tracing for mariadb db as (mariadb day during fosdem 2020)
E bpf and dynamic tracing for mariadb db as (mariadb day during fosdem 2020)
Valeriy Kravchuk
 
Avro - More Than Just a Serialization Framework - CHUG - 20120416
Avro - More Than Just a Serialization Framework - CHUG - 20120416
Chicago Hadoop Users Group
 
Hijacking Ruby Syntax in Ruby (RubyConf 2018)
Hijacking Ruby Syntax in Ruby (RubyConf 2018)
SATOSHI TAGOMORI
 
Apache Thrift
Apache Thrift
knight1128
 
Java Hates Linux. Deal With It.
Java Hates Linux. Deal With It.
Greg Banks
 
Fluentd at HKOScon
Fluentd at HKOScon
N Masahiro
 
Effizientere WordPress-Plugin-Entwicklung mit Softwaretests
Effizientere WordPress-Plugin-Entwicklung mit Softwaretests
DECK36
 
Middleware as Code with mruby
Middleware as Code with mruby
Hiroshi SHIBATA
 
Golang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war story
Aerospike
 
System Programming and Administration
System Programming and Administration
Krasimir Berov (Красимир Беров)
 
Installing & Configuring OpenLDAP (Hands On Lab)
Installing & Configuring OpenLDAP (Hands On Lab)
Michael Lamont
 
Ninja Build: Simple Guide for Beginners
Ninja Build: Simple Guide for Beginners
Chang W. Doh
 
Fluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshell
N Masahiro
 
G rpc lection1
G rpc lection1
eleksdev
 
Modern Black Mages Fighting in the Real World
Modern Black Mages Fighting in the Real World
SATOSHI TAGOMORI
 
Lua vs python
Lua vs python
HoChul Shin
 
Node.js essentials
Node.js essentials
Bedis ElAchèche
 
Overlay & Libraries | Pebble Meetup Oct. 2014
Overlay & Libraries | Pebble Meetup Oct. 2014
Pebble Technology
 
E bpf and dynamic tracing for mariadb db as (mariadb day during fosdem 2020)
E bpf and dynamic tracing for mariadb db as (mariadb day during fosdem 2020)
Valeriy Kravchuk
 
Avro - More Than Just a Serialization Framework - CHUG - 20120416
Avro - More Than Just a Serialization Framework - CHUG - 20120416
Chicago Hadoop Users Group
 
Hijacking Ruby Syntax in Ruby (RubyConf 2018)
Hijacking Ruby Syntax in Ruby (RubyConf 2018)
SATOSHI TAGOMORI
 
Java Hates Linux. Deal With It.
Java Hates Linux. Deal With It.
Greg Banks
 
Fluentd at HKOScon
Fluentd at HKOScon
N Masahiro
 
Effizientere WordPress-Plugin-Entwicklung mit Softwaretests
Effizientere WordPress-Plugin-Entwicklung mit Softwaretests
DECK36
 
Middleware as Code with mruby
Middleware as Code with mruby
Hiroshi SHIBATA
 
Golang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war story
Aerospike
 
Installing & Configuring OpenLDAP (Hands On Lab)
Installing & Configuring OpenLDAP (Hands On Lab)
Michael Lamont
 
Ninja Build: Simple Guide for Beginners
Ninja Build: Simple Guide for Beginners
Chang W. Doh
 
Fluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshell
N Masahiro
 
G rpc lection1
G rpc lection1
eleksdev
 
Modern Black Mages Fighting in the Real World
Modern Black Mages Fighting in the Real World
SATOSHI TAGOMORI
 

Viewers also liked (16)

StrongSteam AI at HackerNews London October 2011
StrongSteam AI at HackerNews London October 2011
Ian Ozsvald
 
لوحة الجيوب
لوحة الجيوب
boba56222
 
Boomers to Millennials
Boomers to Millennials
John M Olson, CLTC
 
Persona-fication or: Falling in Love with a Bot
Persona-fication or: Falling in Love with a Bot
Modern Hombre
 
Investors Need Purchasing Power
Investors Need Purchasing Power
John M Olson, CLTC
 
The Long Term Investment Outlook for China
The Long Term Investment Outlook for China
John M Olson, CLTC
 
Application Modeling with Graph Databases
Application Modeling with Graph Databases
Josh Adell
 
Data is a Designer's Best Friend - EuroIA 2016
Data is a Designer's Best Friend - EuroIA 2016
Kathryn Parkes
 
Lanyrd Pro
Lanyrd Pro
Lanyrd
 
EuroIA 2016 - Clementina Gentile - Hello stranger
EuroIA 2016 - Clementina Gentile - Hello stranger
Clementina Gentile
 
PyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel Hordes
PyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel Hordes
kgrandis
 
Applying Computer Vision to Art History
Applying Computer Vision to Art History
jeresig
 
Design your application using Persistent Graphs and OrientDB
Design your application using Persistent Graphs and OrientDB
Luca Garulli
 
The Graph Traversal Programming Pattern
The Graph Traversal Programming Pattern
Marko Rodriguez
 
Graphs in the Database: Rdbms In The Social Networks Age
Graphs in the Database: Rdbms In The Social Networks Age
Lorenzo Alberton
 
NoSQL Databases: Why, what and when
NoSQL Databases: Why, what and when
Lorenzo Alberton
 
StrongSteam AI at HackerNews London October 2011
StrongSteam AI at HackerNews London October 2011
Ian Ozsvald
 
لوحة الجيوب
لوحة الجيوب
boba56222
 
Persona-fication or: Falling in Love with a Bot
Persona-fication or: Falling in Love with a Bot
Modern Hombre
 
Investors Need Purchasing Power
Investors Need Purchasing Power
John M Olson, CLTC
 
The Long Term Investment Outlook for China
The Long Term Investment Outlook for China
John M Olson, CLTC
 
Application Modeling with Graph Databases
Application Modeling with Graph Databases
Josh Adell
 
Data is a Designer's Best Friend - EuroIA 2016
Data is a Designer's Best Friend - EuroIA 2016
Kathryn Parkes
 
Lanyrd Pro
Lanyrd Pro
Lanyrd
 
EuroIA 2016 - Clementina Gentile - Hello stranger
EuroIA 2016 - Clementina Gentile - Hello stranger
Clementina Gentile
 
PyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel Hordes
PyCon 2012: Militarizing Your Backyard: Computer Vision and the Squirrel Hordes
kgrandis
 
Applying Computer Vision to Art History
Applying Computer Vision to Art History
jeresig
 
Design your application using Persistent Graphs and OrientDB
Design your application using Persistent Graphs and OrientDB
Luca Garulli
 
The Graph Traversal Programming Pattern
The Graph Traversal Programming Pattern
Marko Rodriguez
 
Graphs in the Database: Rdbms In The Social Networks Age
Graphs in the Database: Rdbms In The Social Networks Age
Lorenzo Alberton
 
NoSQL Databases: Why, what and when
NoSQL Databases: Why, what and when
Lorenzo Alberton
 
Ad

Similar to Building Server Applications Using ObjectiveC And GNUstep (20)

Cross Platform Objective C Development Using Gn Ustep
Cross Platform Objective C Development Using Gn Ustep
wangii
 
Don't Fear the Platform
Don't Fear the Platform
ESUG
 
Cocoa programming for Mac OS X 2nd Edition Aaron Hillegass
Cocoa programming for Mac OS X 2nd Edition Aaron Hillegass
lanibalbas
 
Cocoa programming for Mac OS X 2nd Edition Aaron Hillegass
Cocoa programming for Mac OS X 2nd Edition Aaron Hillegass
mrykasavill
 
iphone application development
iphone application development
arpitnot4u
 
Cocoa programming for Mac OS X 2nd Edition Aaron Hillegass
Cocoa programming for Mac OS X 2nd Edition Aaron Hillegass
skaroukmetz
 
F-Script
F-Script
ESUG
 
l-rubysocks-a4
l-rubysocks-a4
tutorialsruby
 
l-rubysocks-a4
l-rubysocks-a4
tutorialsruby
 
Genode Programming
Genode Programming
Vasily Sartakov
 
Foss History
Foss History
Arulalan T
 
Cpp In Soa
Cpp In Soa
WSO2
 
Foss History
Foss History
Shrinivasan T
 
Learning activity 3
Learning activity 3
Aileen Banaguas
 
Step talk
Step talk
ESUG
 
Autotools pratical training
Autotools pratical training
Thierry Gayet
 
The Enterprise Strikes Back
The Enterprise Strikes Back
Burke Libbey
 
JRuby: Pushing the Java Platform Further
JRuby: Pushing the Java Platform Further
Charles Nutter
 
Guadec2007 Gvfs
Guadec2007 Gvfs
Linux User's Group
 
MacRuby & HotCocoa
MacRuby & HotCocoa
Thilo Utke
 
Cross Platform Objective C Development Using Gn Ustep
Cross Platform Objective C Development Using Gn Ustep
wangii
 
Don't Fear the Platform
Don't Fear the Platform
ESUG
 
Cocoa programming for Mac OS X 2nd Edition Aaron Hillegass
Cocoa programming for Mac OS X 2nd Edition Aaron Hillegass
lanibalbas
 
Cocoa programming for Mac OS X 2nd Edition Aaron Hillegass
Cocoa programming for Mac OS X 2nd Edition Aaron Hillegass
mrykasavill
 
iphone application development
iphone application development
arpitnot4u
 
Cocoa programming for Mac OS X 2nd Edition Aaron Hillegass
Cocoa programming for Mac OS X 2nd Edition Aaron Hillegass
skaroukmetz
 
F-Script
F-Script
ESUG
 
Cpp In Soa
Cpp In Soa
WSO2
 
Step talk
Step talk
ESUG
 
Autotools pratical training
Autotools pratical training
Thierry Gayet
 
The Enterprise Strikes Back
The Enterprise Strikes Back
Burke Libbey
 
JRuby: Pushing the Java Platform Further
JRuby: Pushing the Java Platform Further
Charles Nutter
 
MacRuby & HotCocoa
MacRuby & HotCocoa
Thilo Utke
 
Ad

Recently uploaded (20)

UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
All Things Open
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
ScyllaDB
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
All Things Open
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
ScyllaDB
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 

Building Server Applications Using ObjectiveC And GNUstep