#procedural programming vs oop
Explore tagged Tumblr posts
Text
Discover the key differences between procedural and object-oriented programming. Enhance your coding skills with our comprehensive guide and practical insights.
#Difference Between Procedural and Object Oriented Programming#procedural programming vs oop#procedural programming vs object oriented programming
0 notes
Text
Difference Between Java and JavaScript
When it comes to programming, Java and JavaScript are two of the most widely used languages. Despite their similar names, they are quite different in terms of functionality, usage, and even underlying principles. This often leads to confusion among beginners who may assume that the two technologies are related. However, understanding the differences between Java and JavaScript can give developers the clarity they need to decide which tool is best suited for their specific needs.
In this blog, we will explore the key differences between Java and JavaScript by discussing their features, syntax, platforms, and use cases. By the end, you will have a clearer understanding of when and why to use each of these languages.
1. What is Java?
Java is a powerful, object-oriented programming (OOP) language developed by Sun Microsystems (now owned by Oracle). It was first released in 1995 and is designed to be a platform-independent language that allows developers to "write once, run anywhere." This means that Java code can be written on one platform (e.g., Windows, macOS, Linux) and run on any device that has a Java Virtual Machine (JVM) installed. The JVM translates the compiled Java bytecode into machine-specific code, making it platform-independent.
Java is primarily used for developing standalone applications, large enterprise systems, Android applications, and server-side applications. It’s known for its stability, scalability, and performance.
2. What is JavaScript?
JavaScript, on the other hand, is a lightweight, interpreted scripting language that was created for web development. Originally designed to run in web browsers, it allows developers to create dynamic and interactive elements on websites. JavaScript was created by Brendan Eich at Netscape Communications in 1995 and has since evolved into one of the most important languages in web development.
JavaScript is a client-side language, which means it runs in the browser, but it can also be used on the server side through Node.js. Unlike Java, JavaScript is not a strictly object-oriented language; it supports multiple programming paradigms such as procedural, functional, and event-driven programming.
3. Syntax Differences Between Java and JavaScript
One of the most noticeable differences between Java and JavaScript lies in their syntax. While they may share some similar constructs (like curly braces for code blocks), the syntax rules and programming paradigms they follow are quite different.
Java is a statically-typed language, meaning that you must declare the type of variable before using it. For example:javaCopyint number = 10; String message = "Hello, World!"; The types (like int and String) must be specified and can’t be changed once the variable is declared.
JavaScript, on the other hand, is dynamically typed. This means you do not have to specify the type of the variable before using it, and the type can change as the program runs. For example:javascriptCopylet number = 10; let message = "Hello, World!"; Here, the type of number and message is determined dynamically at runtime.
4. Compiling vs. Interpreting
Another significant difference between Java and JavaScript is how they are executed.
Java is a compiled language. This means that Java code is first written and then compiled into bytecode by a Java compiler. The bytecode is platform-independent and can be run on any device that has a Java Virtual Machine (JVM). This provides portability and allows Java applications to run across different systems without modification.Steps in Java Execution:
Write Java source code (.java file).
Compile the code using a Java compiler, which converts it into bytecode (.class file).
The bytecode is then executed by the JVM.
JavaScript, on the other hand, is an interpreted language, which means the code is executed line-by-line by an interpreter (usually within a web browser). The JavaScript engine in a browser reads the JavaScript code, interprets it, and executes it in real-time.Steps in JavaScript Execution:
Write JavaScript code (.js file).
The code is directly interpreted and executed by a web browser or JavaScript runtime environment like Node.js.
5. Execution Environment
Java and JavaScript also differ greatly in terms of their execution environments:
Java is typically used for building standalone applications that run on the JVM. These applications can be anything from mobile apps (Android) to large-scale enterprise applications or even desktop software.
JavaScript, on the other hand, is designed for web development. It is mostly used to create dynamic web pages, handle user interactions, and perform client-side tasks. JavaScript code runs within a web browser (Chrome, Firefox, Safari, etc.) and can also run on the server side through Node.js.
6. Object-Oriented vs. Multi-Paradigm
Java is primarily an object-oriented programming (OOP) language, which means it is based on the principles of encapsulation, inheritance, and polymorphism. Java focuses heavily on classes and objects, and most Java programs are organized around these core concepts.
JavaScript, however, is a multi-paradigm language. While it can support object-oriented programming (OOP) through prototypes, it also supports functional programming and event-driven programming. JavaScript uses prototypes for inheritance rather than classes (though modern JavaScript has introduced classes, they are syntactic sugar over prototypes).
7. Memory Management
Both Java and JavaScript have automatic memory management, but they handle it differently:
Java uses garbage collection to automatically manage memory. The JVM’s garbage collector automatically frees up memory that is no longer in use. Java also allows developers to manually control memory management through various memory allocation techniques.
JavaScript also uses garbage collection for memory management, but since JavaScript runs in a single-threaded environment (in the browser), memory management is typically more lightweight and less complex compared to Java.
8. Use Cases
The primary use cases for each language highlight their distinct roles in the software development landscape.
Java:
Enterprise Applications: Java is often used in large-scale business systems due to its scalability, robustness, and extensive libraries.
Mobile Development: Java is the official language for Android app development.
Backend Systems: Java powers many server-side applications, particularly in environments that require high performance.
Embedded Systems: Java is used in various embedded systems due to its portability and efficiency.
JavaScript:
Web Development: JavaScript is essential for front-end web development, enabling dynamic and interactive web pages.
Backend Development: With the rise of Node.js, JavaScript can also be used on the server side to build web servers and APIs.
Mobile Apps: JavaScript frameworks like React Native and Ionic allow developers to create mobile applications for both iOS and Android.
Game Development: JavaScript is increasingly used in building browser-based games or game engines like Phaser.js.
9. Performance
Performance is another area where Java and JavaScript differ significantly.
Java generally performs better in comparison to JavaScript because it is a compiled language. The compiled bytecode is optimized by the JVM and can be executed more efficiently. Java is well-suited for large-scale applications that require high performance.
JavaScript is typically slower than Java due to its interpreted nature and the overhead involved in real-time interpretation. However, JavaScript has made significant strides in performance, especially with modern engines like V8 (used in Google Chrome and Node.js), which optimize execution.
10. Learning Curve
Java can be more difficult to learn for beginners because it’s a statically-typed language with a focus on OOP principles. The syntax and structure are more complex, and it requires understanding various programming concepts such as classes, interfaces, and inheritance.
JavaScript is often considered easier to learn, especially for web developers, because it is dynamically typed and has a simpler syntax. Additionally, JavaScript is very forgiving with variable types, making it easier to experiment with code.
Conclusion
While Java and JavaScript have similar names, they are fundamentally different languages with different uses, execution models, and ecosystems. Java is a versatile, platform-independent, and high-performance language primarily used for backend applications, mobile development, and large-scale enterprise solutions. JavaScript, on the other hand, is a lightweight, interpreted language that powers the dynamic, interactive elements of the web.
Choosing between Java and JavaScript depends on the specific needs of your project. If you are working on a web-based application or interactive front-end elements, JavaScript will be the way to go. If you are building complex back-end systems, enterprise software, or mobile apps, Java might be more appropriate. Both languages are crucial in their own domains, and mastering them can open up a world of development opportunities.
1 note
·
View note
Text
How Does C++ Compare to Other Programming Languages?
C++ has been a cornerstone of modern software development for decades, serving as the backbone for applications ranging from video games to operating systems. But how does C++ stack up against other popular programming languages? In this article, we’ll explore the strengths and weaknesses of C++, compare it with languages like Python, Java, and C#, and delve into the key features that make it both powerful and challenging. If you're considering diving into C++ programming, you can join the best C++ course at CADL in Zirakpur to master this complex yet rewarding language.
Table of Contents:
Overview of C++
Key Features of C++
Comparison with Other Languages
C++ vs. Python
C++ vs. Java
C++ vs. C#
C++ vs. C
When to Choose C++
Conclusion: Why C++ Still Matters
Learn C++ at CADL Zirakpur
1. Overview of C++
C++ was developed by Bjarne Stroustrup in the early 1980s as an extension of the C programming language. It was designed to bring object-oriented programming (OOP) into the world of C, allowing for more structured and reusable code. Over the years, C++ has evolved significantly, gaining new features, performance improvements, and becoming a favorite language for system-level programming, game development, and large-scale software solutions.
While C++ is known for its power and efficiency, it also has a reputation for being complex due to its flexibility and feature-rich syntax. The language allows programmers to work at both high and low levels, offering control over system resources while supporting advanced programming concepts like polymorphism, inheritance, and templates.
2. Key Features of C++
Before comparing C++ to other programming languages, it’s essential to understand its key features:
Object-Oriented Programming: C++ introduced classes, inheritance, polymorphism, and encapsulation to the C language, giving developers the ability to model complex systems more intuitively.
Low-Level Memory Manipulation: Unlike many high-level languages, C++ allows programmers to directly manipulate memory through pointers. This provides fine-grained control over system resources, which is essential for applications requiring high performance.
Portability: C++ is portable across many platforms, making it a good choice for applications that need to run on different operating systems with minimal modifications.
Standard Template Library (STL): C++ has a powerful Standard Template Library that includes commonly used data structures (like vectors and lists) and algorithms (like sorting and searching), which speeds up development.
Multi-Paradigm Support: C++ is a multi-paradigm language, meaning it supports procedural programming (like C), object-oriented programming, and even generic programming with templates.
These features make C++ highly versatile, but also more difficult to learn and master than many newer languages.
3. Comparison with Other Languages
C++ vs. Python
Syntax and Ease of Use: Python is often praised for its simplicity and readability, making it a preferred language for beginners. Its dynamically-typed nature allows for rapid development without worrying about data types or memory management. C++, on the other hand, has a more rigid and complex syntax that demands greater attention to detail. Developers need to manually manage memory and declare data types.
Performance: C++ is significantly faster than Python because it’s a compiled language, whereas Python is interpreted. This makes C++ a better choice for performance-critical applications, like game engines or real-time simulations. Python excels in web development, data analysis, and artificial intelligence, where speed is not the top priority.
Use Cases: Python is widely used in data science, machine learning, automation, and web development. C++, with its superior performance, is more commonly used in game development, embedded systems, and applications requiring direct hardware interaction.
Verdict: If you need speed and control over system resources, C++ is the better option. For easier syntax and faster development cycles, Python wins.
C++ vs. Java
Object-Oriented Focus: Both C++ and Java are object-oriented, but C++ also supports procedural programming, giving it more flexibility. Java, on the other hand, was designed to be purely object-oriented from the ground up. This makes Java easier to learn for those specifically looking to focus on OOP concepts, whereas C++ can be overcomplicated with its multi-paradigm nature.
Memory Management: C++ requires manual memory management through pointers and dynamic allocation, which can be error-prone. Java simplifies memory management by using automatic garbage collection, making it easier to avoid memory leaks and segmentation faults. This is one of the reasons Java is preferred for large-scale enterprise applications.
Performance: While both languages are compiled, C++ typically offers better performance because Java runs on the Java Virtual Machine (JVM), introducing some overhead. However, the difference in speed has diminished with modern optimizations in Java.
Use Cases: Java is widely used in enterprise-level applications, Android app development, and backend systems. C++ is used for system-level programming, high-performance games, and real-time simulations.
Verdict: If you need fine-grained control over resources or real-time performance, C++ is the better choice. For ease of use and strong object-oriented design, Java is preferable.
C++ vs. C#
Platform Dependence: C++ is platform-independent, meaning that C++ programs can run on any operating system with minimal changes. C# was designed by Microsoft and is deeply integrated into the .NET framework, making it the best choice for Windows-based applications, but less portable across other platforms.
Memory Management: Like Java, C# provides automatic memory management through garbage collection, which can make it easier to write robust applications compared to C++’s manual memory management.
Performance: C++ still offers better performance than C# in most cases, especially in real-time applications. However, for most business and desktop applications, C#'s performance is more than sufficient.
Use Cases: C# is primarily used for Windows application development, game development with Unity, and enterprise solutions. C++ remains the go-to for system-level programming, high-performance applications, and cross-platform projects.
Verdict: C++ is better suited for cross-platform, high-performance software, while C# is ideal for Windows-specific or business applications.
C++ vs. C
Language Features: C++ is essentially an extension of C, meaning that it includes all the features of C while adding object-oriented programming, templates, and more. C is procedural and doesn’t support classes or objects, making it less suitable for modeling complex systems.
Use Cases: C is still widely used for embedded systems, firmware development, and system-level programming where minimal overhead is essential. C++ is used in many of the same areas but excels in situations where object-oriented programming or reusable components are beneficial.
Verdict: Choose C for low-level system programming or embedded systems, and C++ when you need object-oriented features and performance.
4. When to Choose C++
C++ is a powerful language, but it’s not always the right tool for every job. Here are some situations where C++ is the best choice:
High-Performance Applications: Games, real-time simulations, and financial systems requiring low-latency performance benefit from C++.
System-Level Programming: C++’s ability to interact directly with hardware makes it ideal for operating systems, drivers, and embedded systems.
Cross-Platform Development: If you need to develop applications that run on multiple operating systems with minimal changes, C++ is a good choice.
Legacy Systems: Many older systems and libraries are written in C or C++, so if you're working with legacy code, C++ is the natural language to use.
5. Conclusion: Why C++ Still Matters
Despite the rise of newer, easier-to-learn languages, C++ continues to play a crucial role in modern software development. Its balance between high-level programming concepts and low-level hardware control makes it indispensable for performance-critical and system-level programming. While the language has a steep learning curve, its power and flexibility are unmatched.
If you're ready to dive into the world of C++ and unlock its full potential, consider joining the best C++ programming course at CADL in Zirakpur. You’ll learn from experts who can guide you from the basics to advanced concepts, ensuring that you gain the skills needed to succeed in the ever-evolving tech landscape.
6. Learn C++ at CADL Zirakpur
At CADL in Zirakpur, we offer a comprehensive C++ programming course that covers everything from basic syntax to advanced memory management, data structures, and algorithms. Whether you're a beginner or an experienced developer looking to sharpen your skills, our course is designed to provide hands-on learning and real-world application.
Expert Instructors: Learn from industry professionals with years of experience in C++ programming.
Hands-On Projects: Work on real-world projects that simulate actual industry challenges.
Flexible Schedule: Our course offers flexible timings to accommodate working professionals and students.
Join the best C++ programming course at CADL in Zirakpur and take the first step toward mastering one of the most powerful programming languages in the world.
0 notes
Text
Java OOPs Concepts
In this page, we will learn about the basics of OOPs. Object-Oriented Programming is a paradigm that provides many concepts, such as inheritance, data binding, polymorphism, etc.
Simula is considered the first object-oriented programming language. The programming paradigm where everything is represented as an object is known as a truly object-oriented programming language.
Smalltalk is considered the first truly object-oriented programming language.
The popular object-oriented languages are Java, C#, PHP, Python, C++, etc.
0 notes
Photo
Imperative vs. Declarative Programming (Procedural, Functional, and OOP) https://ift.tt/2Hjnwaq
0 notes
Note
not coding homework technically, but i think you could still point me in the right direction. I do a lot of coding but it's all for data sciency stuff. like i don't know any computer science, or what makes a "good code", and most of the things you complain about are things i've never heard of.... where should i start looking if i want to actually understand how to do things well
ooooo so this can be a bit tricky since data science by nature is actually pretty different from the type of programming i tend to talk about in that the goals are fundamentally different
i kind of googled and skimmed this but i think this article goes over it pretty well, but to offer my own thoughts on it basically data science to me is very research/developmental based and not necessarily meant to be maintained and/or run for a long time. as such it doesn’t have to necessarily be efficient, the focus is more on experimentation and maximizing the different types of results you can get.
production code on the other hand DOES have those intentions; at that point the research is done, we select our best algorithm(s) and we want to maximize efficiency and maintainability so that it can easily be scaled. but of course there’s a happy union between the two if you know where to draw the line.
that being said, a lot of the work i do is take such “data sciency” code and productionize it, which is why i bitch and groan about it all the time lmao (perhaps unfairly afdjklad). so it’d certainly be wonderful for me if the people giving me this code were more conscious of good software practices associated with production code.
but i’m not sure where to point you somewhere specific other than just probably googling “good programming/software practices” hahaha. but these are some points that i think are good starters. things in bold are like “topics” you can probably google easily.
understand, like really understand, what DRY is, and a lot of the techniques that come with it
this stands for “don’t repeat yourself” and there are a bunch of acronyms like this in software design but i consider DRY one of the more important ones and you’ll see it reflected in a lot of other principles
the goal of DRY is to literally write less code. if you find yourself repeating the same thing over and over, you should wrap that code in a maintainable function or class. the point being, should you need to CHANGE that code, you only need to do it in one place, and not the 82394832 different places that use that logic
have a good idea of what procedural vs functional vs object oriented programming is
procedural has some benefits but in most cases its written out of lack of knowledge of good programming principles
i think data science tends to be pretty functional in the better cases although i’m sure with bigger tasks it benefits from OOP is as well
a lot of the code i tend to write is OOP, which is a whole subject on its own, and is the one that requires the most conscious knowledge of design imo
as such, learning about OOP in general is probably a good step towards learning good software design, but may be out of context for data science usages
note none of these paradigms are mutually exclusive though, if anything they usually all happen at once in some form or another
parameterize things to give flexibility and avoid hard-coded values
this ties in pretty closely to DRY
in data science i think you guys tend to have a lot of “magic number”, e.g. hard-coded values that might represent thresholds or whatever
stop doing that :(
at the very least, extract those numbers as a named constant that you can reference throughout your code, again so if that number is tweaked during development (as it probably will be) you only need to change it once
or, by making it an input to your program, you have the flexibility of executing your algorithm several times with different input parameters to match different situations
from a production standpoint this is valuable because you don’t have to change the internal code/algorithm to get different results, simply the inputs
i feel like that isn’t entirely useful but hopefully it gives you an idea jdklfadj ofc i’m always down to talk about something specific at more length!!! at the end of the day good programming practice comes solely out of experience. you have to do it for yourself and see the inefficiencies for yourself to really understand where you can write “better code”
#asks#anon#sorry this got long ;___;#also don't feel bad if this seems like a lot at first because it is!!! remember i have 4 fucking years of education on this stuff so#+ 2 of work experience#also like 85% of software engineers don't follow half these things either so adjklad
4 notes
·
View notes
Text
Xampp And Wamp
XAMPP can be described as a bundle of software used to serve web solutions across multiple platforms. It provides assistance to local developers by providing an environment to develop and test projects based on Apache servers, database management systems like MariaDB and scripting languages like Perl and PHP. Like XAMPP, there are a number of similar open-source local servers that provide similar assistance and functionalities. In this article, we will study about MAMP, WAMP, and LAMP to analyze and compare amongst the four.
WampServer is one of the best Windows web application development environment. LAMP is an acronym for Linux, Apache, MySQL, and PHP. Each of these components is open. XAMPP supports Perl, PHP, MySQL But WAMP supports only PHP & MySQL. When it comes to starting the procedure, all that you require to do is to click on the beginning button when it comes to XAMPP. There is no such switch in the case of WAMP. When compare with WAMP, XAMPP comes with additional features like a file server, mercury mail, and Perl.
XAMPP
XAMPP is an acronym, in which 'X' stands for Multiplatform, 'A' stands for Apache server, 'M' stands for MariaDB, 'P' stands for Perl, and 'P' stands for PHP. It is a stack of software, which includes Apache distributions used to develop and test website locally before its deployment on the internet. It is multiplatform and is supported by many operating systems such as Windows, MacOS, and Linux. It is supported by many file formats that add to its robustness. It is easy to install and use. The Control Panel makes it easy to manage and implement.
WAMP
WAMP is another local server, which is a package of software including Apache Server (which stands for A), MySQL database (which stands for M), and PHP script-based language (which stands for P). The 'W' in WAMP designates its exclusiveness for the Windows Operating system. WAMP is used in Windows-based systems to test dynamic websites without publishing it on the webserver. It is handy to implement and developed with PHP. It is available for both 32 bit and 64-bit systems.

MAMP
MAMP is a local server, which is compatible with (M) Mac Operating system and supports development & testing of web projects based on (A) Apache Server, (M) MySQL Database and (P) PHP OOPS based programming language. It can be easily installed on a Mac-based system with the help of a few clicks. It is mainly used for Mac OS, as denoted by the initial M in MAMP. It provides all the equipment that is needed to run WordPress on the system.


LAMP
Xampp Vs Ampps
It is an acronym in which 'L' stands for Linux, 'A' stands for Apache, 'M' stands for MySQL, and 'P' stands for various programming languages such as PHP, Perl, and Python. It is a local server solely supported by the Linux operating system and cannot be run on any other operating system. It is a light-weighted software package used by Linux based local hosts for testing their webpages before launching them on live platform. Unlike other such software packages, it supports development by multiple programming languages such as PHP, Perl, and Python.
Xampp Vs Wamp
Comparison and Analysis
Xampp And Wamp On Same Machine
BasisXAMPPMAMPWAMPLAMPSupporting Platforms.It is a cross-platform software package supported by platforms like Linux, Windows, and Mac OS.This stack of software is only for the MAC operating system.WAMP local server is only supported by Windows Operating system.LAMP is supported by a single platform i.e., Linux based systems.Programming LanguagesThe programming/ scripting languages used for development in XAMPP are Perl and PHP.The coding for the development and testing is done by using PHP in the MAMP server.WAMP uses PHP (a script-based programming language) for development and testing.Unlike other similar local servers, LAMP is multi-lingual in terms of development. It supports coding done in PHP, Perl, and Python.DatabaseXAMPP uses MariaDB, which is a relational database management system. It was developed by MySQL.MAMP stores its data in a relational database. It uses MySQL for data storage and retrieval.Just like MAMP, WAMP uses MySQL, which is an RDBMS for storing and retrieving operations on data.LAMP supports its data storage function and other data-based operations using MySQL RDBMS.ServersApache Server is used for testing and running webpages of local hosts.It uses Apache webserver.WAMP uses the Apache Web server.LAMP, like the other local servers, uses Apache Web server.Installation ProcessThe installation process is easy but may differ for different platformsVery easy process of installation. It takes just a few clicks and minutes.Easy to download & install and it is also light- weighted.LAMP is handy to install and run.
Next TopicInstallation of Wordpress Using Xampp
1 note
·
View note
Text
Procedural programming vs OOP
Why oh why must my university make me take C programming before i take Java (not javascript). Writing programs with Java has been like a splash of cold water after I got used to bathing in the ice bath that was C. Oh well, I’ll get it but I do know one thing..Java sure does have a lot of....CLASS....I’ll leave now
4 notes
·
View notes
Photo

Functional vs. Procedural vs. Object-Oriented Programming ☞ http://bit.ly/38QCrlS #Functional #Procedural #OOP
2 notes
·
View notes
Text
NodeJS Vs Python For Backend Development – Which To Choose?
The best Backend technology must be selected by developers depending on the project requirements. Node.JS will come in handy for a variety of applications as you prepare to build a web application. Python is necessary for many web development services, nevertheless. It is preferable to gain an overview of the two things before comparing.
What then is Node JS?
It is an open-source, single-threaded, cross-platform tool for developing nimble and scalable server-side applications. In 2009, Ryan Dahl penned it. The runtime environment for rendering JavaScript outside of a browser is known as Node.js.
what about Python?
The first version of Python was released by Guido Van Rossum in 1991. It is a high-level, object-oriented, versatile programming language. Python's interpreted nature, dynamic typing, and grammar make it the preferred language for scripting. It supports a wide range of programming paradigms, such as functional, procedural, and OOPS.
A Comparison between NodeJS vs Python
1. Speed
2. Scalability
3. Error Handling
4. Syntax
5. Libraries
6. Range of app development
7. Use Cases
8. Community
Python and Node.js are widely used for backend operations in the development of websites. Python is a versatile programming language that excels in a wide range of fields and professions. It offers a simple structure, a thriving development community, and a sizable collection of AI and ML libraries.
0 notes
Text
Programming Frameworks
Programming Paradigms
Programming paradigms classify programming languages based on their features and characteristics.
Ex: Functional programming, Object oriented programming
Some computer languages support multiple paradigms.
Ex: C++ support both functional OOP.
Non- structured programming
Earliest paradigm
A series of code
Becomes complex as the number of lines increases
Structured programming
Handle the issues of non structured programming by introducing the ways to structure the code using blocks.
- Control structures
- Functions/Procedures/Methods
- Classes/Blocks
Types of structured programming
- Block structured (functional) programming
- Object oriented programming
Event driven programming
Focus on the events launched outside the system.
- User events (Click, drag/drop)
- Schedulers/compilers
- Sensors, messages , hardware interrupts
Mostly related to the systems with GUIs.
Functional programming
Origins from Lambda Calculus.
Lambda Calculus : This is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution.
No side – effects = Referential transparency
Execution of a function does not effect on the global state of the system.
Use a declarative approach
Declarative approach : is a programming paradigm that expresses the logic of computation without describing its control flow.
This helps to minimize the side – effects.
Procedural programming
This paradigm helps to structure the code using blocks (procedures, routines, sub-routines, functions, methods).
A procedure can implement a single algorithm using the control structures.
Has side – effects.
Use imperative approach.
Imperative approach : is a programming paradigm that uses statements to change program’s state.
Software Runtime Architecture
Languages can be categorized to the way they are processed and executed.
The general software runtime architecture
The communication between the application and the OS
needs additional components.

Compiled languages
Some executables can directly run on the OS.
Some uses virtual runtime machines.

Scripting languages
Source code is not compiled, it is directly executed and at the execution time the code is interpreted by a runtime machine.

Markup languages
No execution process for the markup languages.
The tools who have the knowledge to understand the markup languages can generate the output.
Development tools
Computer Aided Software Engineering (CASE) tools are used throughout the engineering life cycle of the software systems.
CASE software types
Individual tools – for specific task
Workbenches – multiple tools are combined focusing on a specific part of SDLC.
Environments – Combines many tools to support many activities throughout the SDLC.
Frameworks vs Plugins vs Libraries

Frameworks are concrete
A framework is incomplete
Framework helps solving recurring problems
The difference between JDK and JRE
JRE
JRE is an acronym for Java Runtime Environment. It is also written as Java RTE. The Java Runtime Environment is a set of software tools which are used for developing Java applications. It is used to provide the runtime environment. It is the implementation of JVM (Java Virtual Machine). It physically exists. It contains a set of libraries + other files that JVM uses at runtime.

JDK
JDK is an acronym for Java Development Kit. The Java Development Kit (JDK) is a software development environment which is used to develop Java applications and HYPERLINK applets. It physically exists. It contains JRE + development tools.
JDK is an implementation of any one of the below given Java Platforms released by Oracle Corporation:
Standard Edition Java Platform
Enterprise Edition Java Platform
Micro Edition Java Platform
The JDK contains a private Java Virtual Machine (JVM) and a few other resources such as an interpreter/loader (java), a compiler (javac), an archiver (jar), a documentation generator (Javadoc), etc. to complete the development of a Java Application.

JVM
JVM (Java Virtual Machine) is an abstract machine. It is called a virtual machine because it doesn't physically exist. It is a specification that provides a runtime environment in which Java bytecode can be executed. It can also run those programs which are written in other languages and compiled to Java bytecode.
The JVM performs the following main tasks:
Loads code
Verifies code
Executes code
Provides runtime environment
JDK = JRE + Development tools
JRE = JVM + Library classes
Why we have to edit the path after installing the JDK?
When you type any thing in Command prompt , except the standard keywords like ( cd , dir) , the command prompt searches them in the folder where you are and tries to execute it , also as the cmd ( Command Prompt ) is from C:\WINDOWS\SYSTEM32 , so all the programs from here are accessible form anywhere in windows , also this is necessary , here , this is a necessity for windows to keep them in hand , whenever needed , where ever needed .
The path points to the location of the jre i.e. the java binary files such as the jvm and necessary libraries. The classpath points to the classes you developed so that the jvm can find them and load them when you run your product.
So essentially you need the path to find java so it can then find your classes and run them from the classpath.
Why you should need to set JAVA_HOME?
When you run a Java program you need to first start the JVM, typically this is done by running an executable, on Windows this is java.exe. You can get that in lots of ways for example just giving a full path:
C:\somedir\bin\java.exe
or may having it on your PATH.
You specify as command line arguments some class files or Jar files containing class files which are your program. But that's not enough, the java.exe itself needs various other resources, not least all the Java libraries. By setting the environment variable JAVA_HOME you specify where the JRE, and hence all those runtime resources, are to be found. You should ensure that the particular Java you execute matches the setting of JAVA_HOME.
Difference between PATH and JAVA HOME

Java IDE’s and comparisons
Eclipse
Eclips is an open source platform. This is used in both open source and commercial projects. Starting in a humble manner, this has now emerged as a major platform, which is also used in several other languages.
The greatest advantage of Eclipse is that it features a whole plethora of plugins, which makes it versatile and highly customizable. This platform works for you in the background, compiling code, and showing up errors as they occur. The entire IDE is organized in Perspectives, which are essentially sort of visual containers, which offer a set of views and editors.
Eclipse’s multitasking, filtering and debugging are yet other pluses. Designed to fit the needs of large development projects, it can handle various tasks such as analysis and design, product management, implementation, content development, testing, and documentation as well.
NetBeans
NetBeans was independently developed and it emerged as an open source platform after it was acquired by Sun in 1999. This IDE can be used to develop software for all versions of Java ranging from Java ME up to the Enterprise Edition.
NetBeans offers you various different bundles – 2 C/C++ and PHP editions, a Java SE edition, the Java EE edition, and 1 kitchen sink edition that offers everything you will ever need for your project. This IDE also offers tools and editors which can be used for HTML, PHP, XML, JavaScript and more. You can now find support for HTML5 and other Web technologies as well.
NetBeans scores over Eclipse in that it features database support, with drivers for Java DB, MySQL, PostgreSQL, and Oracle. Its Database Explorer enables you to easily create, modify and delete tables and databases within the IDE.
IntelliJ Idea
IntelliJ offers support for a variety of languages, including Java, Scala, Groovy, Clojure and more. This IDE comes with features such as smart code completion, code analysis, and advanced refactoring. The commercial “Ultimate” version, which mainly targets the enterprise sector, additionally supports SQL, ActionScript, Ruby, Python, and PHP. Version 12 of this platform also comes with a new Android UI designer for Android app development.
IntelliJ too features several user-written plugins. It currently offers over 900 plugins, plus an additional 50+ in its enterprise version.
Conclusion
All of the above IDEs come with their own advantages. While Eclipse is still the widest used IDE, NetBeans is now gaining popularity with independent developers. While the enterprise edition of IntelliJ works like a marvel, some developers may consider it an unnecessary expense.
1 note
·
View note
Text
Android vs IOS development: Which one is best for your app
Image Link
With about 5.11 billion mobile cellphone clients in 2019 on the planet, app development from top mobile app development companies in Singapore is at its pinnacle. The normal individual goes through around 2 hours and 51 minutes on their telephone each and every day. It is normal that mobile telephone clients will increment to 7.33 billion by 2023.
Those insights are unquestionable, and app development is attempting to stay aware of interest. Programming organizations are attempting to sort out the best approach to mobile development.
For the recent years, Android versus iOS development has been ruling the working framework market. The Android stage holds 68% of the piece of the overall industry, while iOS holds about 29.92% while the rest are more modest working frameworks.
Albeit worldwide, Android holds practically 2.3x a greater amount of the market than iOS, it's important to make reference to the United States of America where the piece of the pie is generally equivalent.
The least demanding thing for an organization to do with this information is devote all assets to Android development. In any case, the level of the piece of the pie isn't the lone thing that is important. The iOS is ruling in more created nations, which implies more possible benefit for organizations.
Consequently, there is no reasonable champ in Android apps versus iOS apps, and top mobile app development companies in Singapore need to delve further into Android versus iOS advantages and disadvantages to settle on their official conclusion.
Android Development
Since it's development by Google and delivery in 2007, Android has become the main mobile working framework. The center Android source code is called Android Open Source Project (AOSP).
The most well-known way app designers do their creating on Android is by utilizing the Android Studio IDE with Java and the Android SDK.
Stars Developing Android Apps versus iOS Apps
Open System - Some fundamental highlights that are confined in iOS are typically open in Android. Engineers from top mobile app development companies in Singapore love this reality as they have more opportunity and occasions to designer more noteworthy things.
Plan - Google gives rules as far as plan. That way, you can make a satisfying format and a great UI regardless of whether you have very little experience.
Fracture - There is a broad number of various gadgets (distinctive equipment) that can run with one responsive app
Distributing - Once your app is prepared and the development group transfers the Android PacKage (APK) it's generally just a short time before clients can download and make the most of your app.
Cons Developing Android Apps versus iOS Apps
Discontinuity - Although it was recorded in aces, fracture can be cons too. Simply consider each one of those distinctive screen sizes, goals, and angle proportions that need to work the manner in which they should after each update. You don't need the app not appearing to end-clients the manner in which you would prefer not to.
Testing - It's practically equivalent to fracture. Since such countless various gadgets run on different android forms and have diverse equipment, it's difficult to test everything as quick as designers from top mobile app development companies in Singapore would need to. It's a tedious issue.
Expensive - Add discontinuity and testing together, and you have greater expenses than you have on iOS that has less forms and less gadgets that run it
Creating iOS Apps
Apple planned iOS to work explicitly on their own Apple gadgets, for example, the iPhone and the iPad. Despite the fact that Android is overwhelming the worldwide market, Apple has gigantic income from iOS since it's predominant in more created nations where individuals go through more cash.
To make an iOS App, engineers utilize the Xcode IDE with the iOS SDK. In spite of the fact that Xcode upholds many programming dialects, Swift is the most mainstream one for iOS development. Apple was the person who made Swift, a programming language that packaged OOP with similitudes to C. It turned into a top pick for software engineers. The language works consistently with iOS.
The source framework is shut, and nobody however Apple may utilize it secretly. Despite the fact that that may seem like something awful, interestingly, Apple is careful about its current circumstance. The iOS climate is secure, and there are low probabilities of getting hacked.
Professionals Developing iOS Apps versus Android Apps
Benefits - The steadfastness of Apple clients gets them go through more cash-flow on apps. They love and trust the brand and the apps that are on the App Store. Likewise, most Apple gadget clients come from western, more created, and rich nations where individuals bring in more cash.
Fracture - Most gadgets utilize similar adaptation of the iOS, and every one of them are made for the iPhone and the iPad. They don't need to consider a large number of various gadgets, goals, and screen sizes.
Test system - The iOS emulator is preferred for troubleshooting over the Android emulator. Most industry pioneers concede to this.
Normalized UI Design - Highly point by point UI plan rules exist, and engineers don't need to consider this thing to an extreme. They can invest more energy and exertion on the actual item.
Cons of Developing iOS Apps versus Android Apps
Costly - The Xcode IDE must be utilized on Macs. This fundamentally expands beginning speculation before you even beginning creating
Tough distributing - Apps that engineers from top mobile app development companies in Singapore make should pass testing that has elevated requirements. Apple and iOS are very prohibitive when an app doesn't meet the standards, and numerous apps get dismissed.
Customization - Because of the normalization rules, numerous apps lose beginning inventiveness and become "like the rest." This absence of customization dismisses numerous engineers.
Android versus iOS Development: Customer Perspective
There is a warmed discussion web based with respect to Android versus iOS development, with Android versus iOS advantages and disadvantages being apparent, even still both Android and iOS have extremely steadfast clients who can be discovered battling in warmed discussions over the web, which one is better.
The dedication pace of Android clients in the previous three years has been about 89% to 91%.
The steadfastness pace of iOS clients in the previous three years has been about 85% to 88%.
The most evident end is that the vast majority evaluate one working framework, learn it, and stick to it for the greater part of their lives. That is the reason Apple and Google are battling for each new client in light of the fact that most probable that client will turn into a drawn out client.
Android clients are more averse to go through cash in the Play Store, however approaching more individuals can be an incredible procedure to put mobile promotions. Engineers who focus more on iOS can expect more app buys and more in-app buys and can make a procedure around that.
End on Android versus iOS Development
So which one should I pick, ios or android development well, there is no clear victor in Android versus iOS. It's imperative to set individual inclinations aside and take a gander at the 10,000 foot view. In the event that you need to alter more, stand by less to get your app developed by top mobile app development companies in Singapore approved, and contact a more extensive crowd, at that point the Android stage is the best approach. Clients not refreshing to the most recent Android adaptations constrains you to invest more energy and cash on fracture.
iOS apps, and the end-clients are bound to go through more cash. Information recommend that up to 30% less cash is spent on apps created for iOS. The information of apps made on iOS is additionally safer.
In the event that an organization needs to pick one between ios or android development it should weight the upsides and downsides dependent on that they are looing for yet, eventually, if an organization can deal with both Android and iOS development for its apps, at that point, definitely, they ought to do that. Albeit testing and tedious, the prizes are far more prominent than the endeavors.
0 notes
Text
OOP VS Functionalism - The False Dichotomy
youtube
So I watched this video... and it's a pretty good video. It talks about different types of programming: procedural, structured, OOP, and then finally functionalism.
But there's something that really bothered me. At around the half way mark the presenter really dumps on OOP and says how Functional programming is the future.
I'm not going to deny that, obviously functionalism has it's perks. But the way he talks about OOP as if it's just some fad is really... annoying.
And of course we all know the next big thing is not functional programming, but dysfunctional programming.
I think functional programming and OOP can coexist. And I've done it in my games. Well, mostly so I don't have to scroll around as much in my files, but it's functional nonetheless.
Because what OOP does really well is complexity hiding. Otherwise called encapsulation but I think encapsulation is a bit of a loaded term due to the number of people with no idea what they're doing using it.
"Why are you refactoring this thing to use like 12 nested calls when one sufficed before?"
"It's encapsulation!"
And what functionalism does really well is centralizing all of your logic so it's easier to see and test.
So complexity and centralization. Two very different ideas. Saying one completely replaces the other is just... well, it's just nonsense. Maybe in some niche fields, but in general you're going to need one or the other somewhere. Restricting yourself to just one is like only using half of the tools you can. Why limit yourself?
So let me tell you how I do it. In my code I usually default to OOP because it's easier, you don't have to think as much because it's not centralized like functionalism. But as the code becomes more mature I'll find myself spinning out things that don't depend on much stuff into their own static functions. Functionalism.
And this has gone really well for me. To paraphrase Einstein: your code should be as functional as possible, but no more functional than that.
It's amazing how many programming arguments you can kill by just saying, "Refactor it later."
So that's how I see functionalism and OOP coexisting. I mean, what I'm trying to say is:
0 notes
Photo
Imperative vs. Declarative Programming (Procedural, Functional, and OOP) https://ift.tt/2Hjnwaq https://ift.tt/2UgvLrq
0 notes
Photo
Imperative vs. Declarative Programming (Procedural, Functional, and OOP) https://ift.tt/2Hjnwaq
0 notes
Photo

Functional vs. Procedural vs. Object-Oriented Programming ☞ http://bit.ly/38QCrlS #Functional #Procedural #OOP
0 notes