Posted on

What is blockchain?

Blockchain is a technology that maintains a digital ledger or a digital notebook, which is highly secured and unchangeable once recorded. In other words, blockchain is a way to keep a secure and trustworthy record of information and transactions that are open for anyone to see and hard for anyone to mess with.

What it makes special:

  1. Decentralized: The blockchain is not controlled by one person or company. It’s shared across a network of computers (nodes). This makes it very hard for anyone to cheat or manipulate the information.
  2. Secure: Each block contains a reference to the previous block, which creates a chain. If someone tries to change something in an older block, it would mean changing all the following blocks, and everyone in the network would notice. So, it’s very secure.
  3. Transparency: You can see all the information on the blockchain. It’s like an open book. Anyone can view it, which makes it trustworthy.
  4. Trustworthy Transactions: Once something is on the blockchain, it’s very hard to alter or erase. This is why it’s often used for things like cryptocurrencies (e.g., Bitcoin) and legal contracts.

Posted on

Websocket

WebSocket is a communication protocol that allows for full-duplex (two-way) communication over a single TCP connection. It is designed to be used for real-time, bi-directional communication between a client and a server.

WebSocket is different from other network protocols like HTTP because it allows for persistent connections between the client and the server, and it allows for the transfer of data in both directions. This makes it well-suited for applications that require low-latency, real-time communication, such as online games, chat applications, and collaborative applications.

WebSocket uses a handshake mechanism to establish a connection between the client and the server, and once the connection is established, data can be transferred in both directions using a simple framing protocol. WebSocket is designed to be used in web browsers, and it is supported by most modern browsers. It is also supported by a number of other technologies and platforms, including Delphi, which provides support for WebSocket through the Delphi WebSocket component.

Datasnap

Delphi DataSnap is a technology in Delphi that allows you to create multi-tier database applications. It allows you to create a server application that can provide data and services to client applications, and to create client applications that can consume those data and services.

DataSnap uses a client-server architecture, where the server application exposes data and services to client applications, and the client applications consume those data and services. DataSnap server applications can be hosted in a standalone executable or as a Windows service, and they can be accessed by client applications using a variety of communication channels, including HTTP, TCP/IP, and WebSocket.

DataSnap provides a number of features that make it easy to create multi-tier applications, including support for database connectivity, data marshaling, authentication and authorization, and automatic generation of client proxies. It also provides a number of tools and components to help you build and deploy your DataSnap applications, including the DataSnap wizard, the DataSnap server component, and the DataSnap client component.

Difference between Websocket and Datasnap

Delphi WebSocket is a component that provides support for WebSocket protocol in Delphi. It allows you to create WebSocket client applications that can connect to a WebSocket server and exchange data with it.

DataSnap is a technology in Delphi that allows you to create multi-tier database applications. It allows you to create a server application that can provide data and services to client applications, and to create client applications that can consume those data and services.

So, the main difference between Delphi WebSocket and DataSnap is that Delphi WebSocket is a component for implementing WebSocket communications in Delphi, while DataSnap is a technology for creating multi-tier database applications in Delphi. Delphi WebSocket can be used as one of the communication channels in a DataSnap application, but it is not limited to that use case and can be used in any Delphi application that needs to communicate over WebSocket.

Posted on

Let us start Coding in Delphi?

25 years after its launch, Delphi is still around. Here’s why you need to use Delphi to develop software from now onwards.

Delphi was first released in 1995. The programming language and IDE are in continuous development and have advanced and improved, much like alternative languages such as C#, C++, Java, and others.

Thanks to recent changes to Windows, Delphi could be set to become a prominent development language once more.

Whether you’re learning to program for the first time or looking to get back on the coding horse, here is why you should consider Delphi for coding in the coming years.

What Is Delphi?

Released initially for Windows 3.1, Delphi is named after the Oracle at Delphi of Greek legend and is one of the first-ever Rapid Application Development (RAD) tools.

Delphi is a programming language as well as a software product, complete with an IDE (Integrated Development Environment) for the rapid development of applications for desktop, mobile, web, and console platforms.

Originally developed by Borland, Delphi is now developed and maintained by Embarcadero Technologies. Delphi is based on the Object Pascal language and includes dual application frameworks and a visual designer.

Like its predecessor, Delphi is a general-purpose language designed for efficiency and offers hardware access and low-level programming, and even supports code written in assembly or machine code.

Delphi is Fast

Perhaps the biggest strength of Delphi is its speed. Developed as a RAD tool, long before the term was in use, its main advantage is the integrated memory manager.

This allows the software to utilize multiple memory allocations in a way alternative languages like C or C++ cannot. Similarly, Delphi can use strings faster than C and C++.

However, the main thing to note about Delphi isn’t just its speed, but its parity. C, C++, Java… they’re all better known, better supported, and widely understood, but overall are no faster than Delphi. In some key scenarios – like those highlighted above – Delphi is faster.

The same people who say, “Delphi is slow” typically also say “Delphi is dead.” But they’re wrong on both counts.

Delphi Supports Every Platform You Use

Developing with Delphi means you can target your application to run on Windows, macOS, Linux, Android, and iOS.

This is made possible thanks to the FireMonkey cross-platform development framework, which is available for Windows, macOS, Android, and iOS. Development on Linux requires a third-party library, FMX Linux.

Perhaps most important is that Microsoft has deprecated its Universal Windows Platform (UWP). This enables developer tool vendors like Delphi to once again be at the forefront of Windows application development. Rather than be sidelined by UWP (and before that . NET), Delphi’s ability to access Windows’ native (or classic) APIs puts it in prime position.

Windows 64-bit (Win64) and 32-bit (Win32) applications can be developed with Delphi.

You Can Now Develop with Delphi for Free

Traditionally, coding with Delphi meant paying for expensive software, as well as learning a new language. With Delphi Community Edition, however, that is no longer the case.

For professional purposes, Delphi 11 is available, in three flavors: Professional, Enterprise, and Architect.

Each of these flavors is priced differently and offers various new features. The Professional option is for individual developers and small teams, working on desktop and mobile apps, and costs $1599 for the first year and $399 for annual renewal.

The Enterprise version of Delphi 11 is aimed at teams developing client/server apps, REST services, and other multi-tier projects. This costs $3999 upfront and $999 for annual renewal.

Finally, the Architect package costs $5999 to buy and $1399 to renew. This is suitable for teams building web-enabled, database, or cloud apps.

Publisher Embarcadero has also made Delphi 11 free for 30 days, providing plenty of time to evaluate the software and language before you commit to buying.

Delphi Does Everything You Need

All kinds of useful applications can be developed with Delphi. Handling hardware and databases are among its key features, but so much more is possible.

Various libraries are available, many free, which let you do everything from manipulating tones, ringtones, sensors, and vibration on an Android device to reporting CPU speed, displaying MAC addresses, editing the PATH environment variable, and other desktop-based tasks.

Accounting software, antivirus tools, receipt generation, order confirmation scripts, AI, and machine learning applications can be developed with Delphi, along with image manipulation, data modeling, virtual studio technology, and more.

You’ll find Delphi applications in healthcare, banking, fintech, and many other industries. Delphi applications written ten or more years ago still run reliably and can be updated and modernized where needed.

If you are prepared to get to grips with Delphi, you can expect to be able to efficiently develop applications that solve problems.

Look Into the Future and Switch to Delphi in 2022

Flexible, free to use, and fast, you will find that Delphi does anything you need. More often found in corporate applications requiring database access, Delphi can handle everything from printers to POS applications. While not well-known for game development – C languages tend to lead there – Delphi is perfect for almost all other programming uses.

With the right course, a willingness to learn, and the ability to adapt your current programming skills, Delphi means an extra string to your bow. Learning Delphi in 2022 means you can add this knowledge to your resume, helping to improve your employability.

If you’re looking for a new programming challenge, want to brush up and develop your skills, or are looking to learn, make 2022 the year you learn Delphi.

source: https://www.makeuseof.com/start-coding-delphi/

Posted on 11,606 Comments

Technical Debt in Software Development.

Technical Debt is similar to Financial Debt. It cost interest and payback. If it is not managed properly it may cost a lot in the future.

It goes on accumulating when the development team cuts too many corners to add new features and expedite software release delivery. It mainly happens when the developers attempt to deliver the project as quickly as possible without documenting and code review and proper testing. This often creates problems that must be fixed in the future.

Technical debt occurs in many ways, but here are six examples:

1. Poor software code quality

The most apparent technical debt is poor-quality software code. There are many reasons behind poor code quality, such as the following:

  • lack of commenting
  • lack of following coding standards by developers; and
  • Other factors include time pressures that mount with poor scheduling or when developers must rewrite outsourced code. These examples can raise technical debt to critical levels.

2. Lack of Monitoring and IT leadership

If the codes are not reviewed and the code control procedure is weak and or IT leadership is poor it contributes to technical debt. The evolution of cloud and containerization trends moves rapidly and can quickly bypass customers’ and leadership teams’ understanding. This means that organizations often adopt unnecessary tools or make decisions that they don’t fully understand, which creates technical debt.

3. No documentation

The lack of technical documentation, like design document, process flow document etc., are often are the source of technical debt. Technical documentation is easy to ignore or shortchange, especially on projects with a tight budget. But resolving documentation-based technical debt isn’t about throwing technical writers at the problem. Organizations should train or enforce documentation in software development workflows. Managers must also hold employees accountable for the documentation related to their roles.

4. Lack of communication and knowledge sharing

A lack of collaboration is a significant cause of technical debt. Job security through obscurity is another problem that occurs when a programmer, engineer or sys admin doesn’t share job-related information with co-workers. Whether information isolation is simply the nature of a particular role or a result of individual intentions, teams might not even realize that knowledge is getting lost over time. Any IT staff with full control over a process must be responsible for maintaining documentation for it; even if the resource is not widely shared, it should exist.

5. Insufficient software testing

Testing software is another easy corner to cut that never ends well. Such technical debt is common in organizations that lack quality assurance support and have yet to implement DevOps.

Conclusion

Preparation of flow diagram and design document before starting the project will minimize the technical depts. Setting practical deadlines for the delivery of the software projects. Reviewing the source code, testing and using SCRUM helps a lot to minimize technical debts.

Posted on 38 Comments

Is Delphi Dying?

Delphi is not dying at all. There is a significant growth in its users around the world.

In 2018 there were roughly six million Delphi developers (I worked at Embarcadero at the time), with a total estimate of ten million Object Pascal developers worldwide when counting all alternative compilers, dialects and indeed – known piracy issues.

Please check the following URL for an explanation:

https://jonlennartaasenden.wordpress.com/2020/03/08/delphi-dying-think-again-tiobe/

Posted on 38 Comments

Is Delphi a low code development tool?

Yes, it is. Delphi, the pioneer of low code development tools, now, leads the future of software development.

Delphi has three distinct benefits for software developers.

Multi-device,multi-platform solution. It has capabilities of delivering software for iOS, Windows, Android, macOS, and Linux just using one codebase.

The software solutions developed in Delphi use fewer lines of code and almost all of them are usable. As a result, the development cost is low in comparison to all other developing tools.

The speed of software development using Delphi is very fast. The productivity of developers is very high and solutions can be delivered in a short period. So it is known as Rapid Application Development (RAD) since its first release in 1995

.

This is a Delphi 1.0 Print ad ( source Marco Cantu Website )

Delphi is a programming language with continuous innovation and development

Even though Delphi version 1 was released in 1995 with RAD Concept, the continuous development and innovation by Embarcadero, Delphi is future proofed development tool. RAD Studio Now you have added FireMonkey FMX Low code wizard , Datasnap, REST Debugger tools keep you abreast of the modern world of consuming online services , More and more deployments iOS、Android and Linux as well as Web Wait for the goal . The market for third-party components remains strong and active , It can meet almost any of your development needs . Recently added Python Integration, Intelligence AI integration attracted many develovers around the world. Lots of popular Game, POS, Accounting, ERP, Banking, Insurance, music composing, utility tools etc are developed and running smoothly.


Posted on 814 Comments

Why did I continue using Delphi?

Benefits

I am using Delphi and continue using it because of the following benefits.

Delphi is a cross-platform tool. It allows to development of applications for Windows,  iOS, macOS, and Android or applications for Linux.

Delphi is easy to use and designed for a rapid development approach for desktop development. According to my experience software development with Delphi is really easier and really more rapid if compared to any other development tools.

Delphi applications are easy to deploy since executables don’t need any pre-installed frameworks, and hence there is no headache about frameworks versioning, packages versioning, etc. And this is what I mean. If you have, for example, some .NET application you should know which .NET version your clients have, which packages they have, how it will be, will they have any conflicts, and you have to deploy assemblies and there are a lot of questions.

Delphi has a huge set of 3rd party components. There are many software companies that availed huge sets of components that can cover UI, background operations or show media, different cross-platform controls, web controls, and so on.

Of course, one more advantage is regular new releases of Delphi and RAD Studio from Embarcadero.

There are tons of software that were developed using Delphi 5, 7. They are all running without any issue even now in the new version of Windows operating systems. Right now it is possible to migrate that legacy software to the up-to-date Delphi versions without rewriting it from scratch.

Drawbacks

There are a few drawbacks of Delphi as all products have pros and cons.

The main drawback is the negative information noise around. In the 90s and 2000s, Delphi was studied in universities and now it’s replaced by other tools. Last year, as I remember, Embarcadero introduced a free version of Delphi (Community Edition) and now maybe different universities will again continue using Delphi and young people will study it during their classes. Again, today young developers consider Delphi to be obsolete, not fashionable technology. They did not look at Delphi seriously and spread rumors without understanding it and also they don’t have any supporting facts to say so. This is what they just hear and this is what I’m calling a negative information noise. Delphi is not an operating system owner. So this is self-explanatory why it’s always half a step back from Microsoft, Apple, or Google.

The supply of Delphi developers in the maker is scarce for the last couple of years. This created problems but the situation has changed now. The number of developers is increasing due to the availability of the free community version of Delphi.

Again, from my point of view, Delphi is not suitable for web development. I am talking about web development in classic understanding. If compared with native web technologies like Visual Studio and ASP.NET, Apache, and PHP, you don’t have a native for Delphi. But there are solutions for web developments from third-party software vendors like Web Core from TMS, IntraWeb from AtoZ, UniGUI from FM Soft.

Posted on 924 Comments

What is Delphi today?

In 1981, I started learning COBOL programming language followed by ANSI C. After a few years back started learning dBase III and developed several applications compiled with CLIPPER. Clipper is the compiler for dBase III. Later in 1995, I found Delphi, and I loved to work with that tool. It completely changed my software development skill. Anyway, let’s just refresh what Delphi was in the past and what it is now.

Today, Delphi is the most powerful software development tool used to build desktop, mobile, and different IoT software. It is up-to-date despite being developed in 1995. The reason for it is that it’s been regularly updated by Embarcadero. The latest version of Delphi is RAD Studio 11.1 which was released on March 15, 2022. It has new features including Many IDE Improvements. Extensive High DPI IDE quality, plus improved use of the IDE with Remote Desktop. It has been all the time and it is still a huge Delphi community comprising experienced engineers and developers.

Delphi was a revolutionary technology for Rapid Application Development (RAD) in the 90s and 2000s. It was a really unique tool that you could use for desktop development compared with this ugly Microsoft Visual Studio 6 version. That time it was too hard to start the development of an application with Visual Studio 6 compared with Delphi where you could just create the project, but the controls then run. And observe how the miracles started happening.

An interesting fact is that the Chief Architect behind Delphi was Anders Hejlsberg who was later hired by Microsoft to improve Visual Studio and he worked as a lead architect of C#. In 2003 Microsoft introduced .NET/C# and Visual Studio 2003 which I think it as Microsoft’s version of RAD studio, totally looking like Delphi. They spent a lot of money into advertising and marketing of these tools and the popularity of Delphi started decreasing and eventually .NET caught the leadership.

Fortunately, Delphi is rocking now. Embarcardero made it one of the best development tools for multi-devices and multi-platform solutions.

Posted on 18,856 Comments

Web Application VS Desktop Application

Which one is better?

The end-users generally don’t care whether the application is desktop, web, or mobile, they only want their task to get done efficiently, easily, and fast.

There are continuous improvements in the development of software, whether it is in the user interface (UI), user experience (UX), deployment, or in technologies. It is also observed that the changes are taking place every five years. Shifting from Desktop to Web, Web to mobile APK, Web, and APK to Desktop, Progress Web Page (PWA), Cloud hosting, etc., client-server, multi-tier, XML to JSON, SOAP to REST. Each solution and platform has its own strength and weakness.

Suppose we want to provide flight services to our customers to go from Kathmandu to Pokhara and vice versa. What solution we choose from following two options:

  1. Flight solution using Boeing 777 (max speed of 900+ km/hour, max pax 300+ )
  2. Flight solution using ATR 42 (max speed of 400+ km/hour, max pax 40+)

We have to select the option based on distance, speed, number of pax, runway facilities, investment, return etc. Similarly, the software solution has to be selected based on requirements and other resources available.

Everything in this world is subject to change. I have a very clear understanding of this context. Nothing is permanent. Market changes, a test of users change requirements changes, the environment changes, working habits changes, looking at the products and services change. In order to go ahead, we must embrace or accept the CHANGE. However, the CHANGE has to be evaluated properly before we adopt it as it could have an impact on many aspects including cost and other resources. Let us get back to our main point Desktop vs Web application and which one is the best?

Over the past decade, there is a constant debate about web apps and desktop apps. Which is better, what are the differences? Which one should be considered for our solutions?  Let us analyze its pros and cons.

What is a Desktop Application?

A standalone application you can install on a computer to carry out a specific task is a desktop application. It can talk to the centralized database server through a VPN. Examples of this type of software are Word, Excel, Powerpoint, Pumori, etc. It utilized the resources of PCs for execution as a result its performance is always better in comparison to web applications.

What is a Web Application?

A web application is software that runs on the web browser and utilizes web technology to carry out different tasks on the web. It requires an internet connection. It uses mostly the server resources and client validation and rendering is done on local PCs. So the utilization of PCs resources is minimum but there are no supplies of PCs with minimum resources nowadays. In this connection, the resources of PCs are wasted. Some of the most common examples of web apps include Google sheet, Google DOC, etc.

What is a Mobile Application?

A mobile application (also called a mobile app) is a type of application (APK similar to EXE files) designed to run on a mobile device, which can be a smartphone or tablet. Examples of mobile apps are Viber, Skype, Facebook etc. Note that mobile apps are similar to desktop apps which have to be downloaded to be used in devices.

Comparision

FactorsWeb AppDesktop AppMobile App
AccessibilityCross-PlatformOS-SpecificDevice-Specific
InstallationAutomaticManual/Can be automatedManual/can AutoUpdate
UpdatesServer updateUpdate in Multiple ComputersAuto Update
UpdatesServer updateUpdate in Multiple ComputersAuto Update
Internet ConnectionRequiredNot RequiredCan be offline, Sync when online
OS FeaturesRestricted OS FeaturesCan Access All FeaturesCan Access Device features
ResourcesUtilizes fewer computer resourcesCan utilize computer resources as per needCan Utilize Device resources
PerformanceGoodBestBetter (Faster than Web)
Platform DependencyNoYesYes
SecurityConsidered Less secureConsidered More SecureConsidered Secured
Forward FixingEasyHardModerate
Maintenance RollbackHardEasyModerate
Data EntrySlowFastSlow
Investment on Server HWHighLowHigh
HostingRequiredNot RequiredRequired
MobilityYesNoYes
Platform DependencyNoYesYes
DeploymentEasyDifficultModerate
Performancedegrade when added Heavy FeaturesCan add heavy featuresRestricted
DevelopmentExpensiveEconomicExpensive
Access to system resourcesNOYesYes
Native AppNoYesYes

My Openion:

I hope that you have understood the difference between web apps vs desktop apps.

From the comparison, you must have understood that every application has its own pros and cons, and they can be utilized for specific requirements.

Why mobile apps, web apps like Skype, Viber, Zoom are given as desktop apps for PCs. The reasons are two folds. One is to make it available on all platforms and the other is to enhance performance. I think you may all have noticed the differences.

Desktop Applications can be web-enabled by using CITRIX and similar third-party applications, which will give benefit the both Web and Desktop worlds. The license fee for this implementation will be between USD 60 to 100 per concurrent user.